Beta Release [III]

I've finally gotten the networking code finished! This wraps up most of the features of the engine and just leaves me with asset creation. Over the next few months I'll be working on getting new content in the game; replacing the tiles to spice up the graphics, working on new music, and creating many more levels. Here's the latest Beta demo for you to try out for now! No install required! First to 10,000 points wins Arcade mode, while the first to the last track wins in Classic mode. If you are hosting a WAN game you will need to forward port 1125 to allow Skyway to connect to clients.

Note: The Windows version of this application requires DirectX 9.0c. If you do not have this installed the application may fail to launch. For this reason the installer is included (dxwebsetup).

Note: The Windows version of this application has been compressed with WinRAR.

Note: The Ubuntu version of this application requires the libopenal1 library to be installed on Ubuntu 16.04 LTS.

Download Beta Release [III]

Download Beta Release [III] OSX

Download Beta Release [III] UBUNTU

Beta Release [II]

I've finally gotten around to finishing the second Beta demo of Skyway. I took the Summer off working on this game, hence the delay in this release. Anyway I'm back to working on the game now, and intend not to leave it too long until the next demo. I'm working toward finalizing the multiplayer code for the next release. Please try out the current demo below. No install required.

Note: The Windows version of this application requires DirectX 9.0c. If you do not have this installed the application may fail to launch. For this reason the installer is included (dxwebsetup).

Note: The Windows version of this application has been compressed with WinRAR.

Download Beta Release [II]

Download Beta Release [II] OSX

Beta Release [I]

It's been far too long without an update here. I'm glad to say I'm back working on this project and I have the first of three Beta demos available for download. Collision detection still needs improvement, which I'm sorting out for the next build, but other than that the engine is mostly complete. Most of the work now is on optimizing the code, finishing the media, and polishing the game. I'll try to release these demos within at least a few weeks of each other. In the mean time; Enjoy :)

Note: This application requires DirectX 9.0c. If you do not have this installed the application may fail to launch. For this reason the installer is included (dxwebsetup).

Note: This application is for Windows only, and has been compressed with WinRAR.

Download Beta Release [I]

Design Document [Updated]

I've updated the design document for Skyway to reflect the changes in the development of this title: Due to the slow development of the game, and wanting to get Skyway in the hands of the player sooner rather than later I've decided to postpone some of the planned features until a future release. This means that Skyway will be available in digital marketplaces in May 2015. I'd also like to announce that the beta releases will be available for free right here from next month.

Free Shader Pack

To help out any AGK developers that plan on learning GLSL in the new year I've decided to release a royalty free shader pack. The pack contains two vertex shaders and five pixel shaders, which will help with rendering high quality 3D scenes. Details of the shaders are listed below. There is also a ReadMe contained in the download which explains each shader and the required inputs in greater detail. If you find these shaders to be helpful and would like to return the favor then please support my current project by liking the Facebook Page.

Frag_Directional: Ambient/Directional Light.
Frag_DirectionalDetail: Ambient/Directional Light + Detail/Light Map.
Frag_PointLightToon: Ambient/Directional/Single Toon Point Light.
Frag_MultiPointLight: Ambient/Directional/Multiple Diffuse Point Lights.
Frag_MultiPointLightSpec: Ambient/Directional/Multiple Specular Point Lights.

Note: All shaders require a diffuse texture. A 1x1 pixel white texture can be used for testing.

Note: This application is for Windows only, and has been compressed with WinRAR.

Download Shader Pack

Alpha Release [III]

Apologies for the lack of updates over the last few months, I haven't been working on Skyway as much as I'd hoped to. Attached is the third and final alpha release of the game. Although there is still no physics engine I've improved the collision detection and implemented timer based movement, which should help to keep the game mechanics consistent across all devices. I've also added one-on-one pier-to-pier LAN multiplayer, where you can race against your opponent to the last track, or play arcade mode in which the first player to reach 5000 points wins.

The next release of Skyway will be a paid beta for Windows and OSX through Desura. Keep posted for updates.

Note: This application is for Windows only, and has been compressed with WinRAR.

Download Alpha Release [III]

Alpha Release [II]

After a long period of inactivity online the second alpha of Skyway is now available as a free download.

Due to the lack of updates with AGK I haven't been able to implement the Bullet physics engine yet, as was planned. It may be another month or two until I have a physics engine in the game, but the next alpha will be focused on improved collision detection, as well as getting multiplayer working, and improving the games graphics. The final alpha will be released early July.

Note: This application is for Windows only, and has been compressed with WinRAR.

Download Alpha Release [II]

Alpha Release [I]

It's finally here! The first alpha demo of Skyway is now available as a free download!

Because things have been running behind schedule, I've decided to postpone commercial release on Desura until the game is in beta. This means that I'll be releasing a few alpha demos before then, as free downloads, starting with the first one today. These alpha demos are targeted exclusively for windows, and only feature the core elements of the engine. Therefore, game mechanics and graphics are in no way representative of the final product.

Note: This application is for Windows only, and has been compressed with WinRAR.

Download Alpha Release [I]

Normal Mapping

To add more depth to the game's graphics without hurting the frame rate too much I've implemented normal maps. Normal mapping is a technique used to add details to a model without actually adding any extra geometry. This technique results in much better performance than processing more polygons, as the GPU doesn't have to draw any extra triangles.

As with color maps, normal maps are wrapped around the surface of the object, with each pixel of the image assigned to a particular co-ordinate. Unlike color maps, normal maps do not store color, but instead use the RGB [Red, Green, Blue] component of each pixel in the image to define a vector [X, Y, Z], which the shading algorithm uses as the angle of the surface at the given point, over-riding the real surface angle of the mesh.

Below are three images: To the left is a basic plain, made of two right angle triangles, without a normal map applied, in the middle, a normal map generated with CrazyBump, and on the right, the same flat plain again, but this time with a normal map used in the lighting, rather than the real surface normals of the mesh. This results in the model appearing as if it has a much higher polygon count due to the shading, although if viewed from a low angle it can be seen to be a flat surface.

Advanced Lighting

The PC and Mac version of Skyway will support more advanced lighting than the basic ambient/diffuse model used for the mobile game. As well as having an ambient light, and a directional light, it will feature point lights with specular highlights. The engine supports up to three point lights, each of which have an inverse square fall-off for added realism. As well as using diffuse shading, point lights introduce a new component to the lighting system:

  • Specular Lighting: This is the glint that your eye catches off shinny surfaces. The shinier a surface, the more defined but smaller the specular reflections are. Unlike Ambient and Diffuse lighting this component is dependent on the observer, meaning that the camera angle and position must be taken into consideration to realistically calculate where the specular reflections are located.

The video below shows a scene with three point lights, each with a red, green, and blue slider to control the color. The white slider at the bottom of the screen controls the global reflectance of the world, increasing the specular intensity when turned up. Unfortunately the shininess can only be controlled globally, rather than on an object by object basis, due to the way AGK handles rendering in Tier 1.

Basic Lighting

Due to the wide range of devices this game will be available on I have written many different shaders which can be swapped in/out at run-time by changing the graphics settings in the options menu. The lighting used for the mobile version of the game is quite basic to keep the overhead low. It consists of three separate components:

  • Ambient Lighting: Controlled by two variables [color/intensity] ambient lighting is applied equally to all polygons within the scene. This is the most basic form of shading, which attempts to simulate global illumination. In the real world objects are never completely black, they receive indirect light bounced from other nearby objects. Ambient lighting approximates this in a crude way by acting as the minimum light component received by all surfaces.
  • Diffuse Lighting: This is where the real shading comes into play. For the mobile version of Skyway a directional light is used, which defines color, intensity, and direction. A directional light simulates a light source positioned at a great distance such as the Sun. Due to the relative distance between objects being so small in comparison to their distance from the light source the object position can be disregarded in the lighting equation when using directional light, meaning that the diffuse shading is based purely on the surface angle.
  • Color Map: A two dimensional image is then mapped onto the object to define the texture of the surface. This is multiplied by the sum of the lighting equation to get the final image drawn to the screen.

In conclusion, the mobile shading algorithm uses a basic ambient light with no position or direction, to control the model's ambient component, as well as a directional light, which has no position, but only direction, to modulate the diffuse light of each surface.

AGK Game Launcher

To develop Skyway I'm using App Game Kit [Tier 1]: An OpenGL wrapper and BASIC compiler. Due to the fact that AGK is currently in a fairly primitive stage there is no support for resizing the OpenGL window at run-time. This is why I've created a Game Launcher for Windows in Visual Basic to allow for the end-user to choose resolution settings before launching the game.

 Game Launcher

This post is for any developers out their that may also need something like this in their projects. I've included the Game Launcher with instructions as well as the Visual Basic Project below.

Please refer to the instructions provided in the text file for help on how to set this up with your own AGK Tier 1 project.

Note: This application is for Windows only, and requires the .Net Framework to run.

Note: The attached file has been compressed with WinRAR.

 

Download Game Launcher

Design Document

I've decided to create a simple design document for this project: The purpose of this is to outline some of the core elements I'll be working on, to keep track of everything, and to help people gain an understanding of what I'm trying to achieve with this game.

Project Concept

  • Game Genre: Skyway is a 3D platformer created for all ages in mind, with arcade style qualities. The game focuses on fun, pick up and play gameplay, rather than on story narrative. It is a simple concept which pays tribute to retro gaming.
  • Gameplay Style: Race against the clock to reach the end of the track while avoiding obstacles in your path and picking up items, or go head to head with a friend in an online session. With multiple game modes Skyway is a game with great replay value.

Game Engine

  • Graphics Engine: Custom shaders supporting dynamic ambient, directional, and point lighting, with specular highlights and normal mapping on Windows/OSX. This game is built with mobiles as well as desktops in mind, allowing for a wide range of visual fidelity.
  • Music System: Full original soundtrack composed with Ableton Live and Massive, as well as an in-game radio system where channels are streamed from Soma FM [unconfirmed], meaning no constant repetition of the same music.
  • Networking: Host/Client multiplayer networking for competing online in various game modes. Win against others to increase your global score and get a place on the leaderboards. Win prizes in official monthly competitions.
  • Game Mechanics: With the integration of the Bullet physics engine the game will be balanced between realistic movement and arcade style controls. A built in level-editor will hand over the creative control to the users that want to take things one step further and create their own tracks.

Publishing

  • Alpha Release: Desura's Alpha Funding will help support me financially during this game's development, as well as help to get rid of any bugs, and improve features. Early buyers will directly see their purchase affecting the quality of the game through feedback.
  • General Release: For the initial release I plan to target Windows and OSX. The game will be released on Desura, and on Steam, if greenlit. The second stage of the release is for mobile platforms, which means the Google Play, and iOS Store.

Blog Intro

Hey! Welcome to my new blog! My name's Conor and I'm a hobbyist game developer. I started programming about 6 or 7 years ago, first with BASIC and then slowly moving on to C# and some C++, learning various video-game libraries in between, including XNA, DarkGDK, and AGK.

This blog marks the start of the development diary for my new game 'Skyway'. It will be my first commercial project as well as the first time I've developed for iOS/Android, so it should be an interesting experience! I also plan to target Windows and OSX.

Skyway is a 3D platformer inspired by the classic Dos game SkyRoads. Featuring online multiplayer, an in-built level editor, and polished graphics, this game will bring a sense of nostalgia to fans of BlueMoon's classic, while keeping things fresh for newcomers.

I'm working alone on this project so I'll be wearing many hats during it's development and learning a lot along the way. I've created this blog to start spreading the word about this game to as many people as possible, as well as to gain support for the Alpha-Release on Desura in the coming months.

I'll be posting here regularly with updates on the progress of the game as well as explaining the work I'm currently doing, so keep posted!

Cover Art [Work in Progress]