Wil Stacey
In another castle
iNTRODUCTION
As detailed by the brief, the client (Black Sun) want to test my Unreal 2D capabilities in preparation for their upcoming platforming venture. This will involve me producing multiple assets and levels, detailing and reflecting on my process as I go. My target for this project is to create at least one fully-fledged level containing a range of aesthetically pleasing sprites and to experiment with sprite animation which will hopefully look fluid and satisfying.
aSSETS
1
2
3
3
3
1
Quintino Pixels. (2020). Mountain Forest. Available: https://quintino-pixels.itch.io/cc-10-mountain-forest. Last accessed 14/12/2020.
This asset pack can be used in both free and commercial projects. You can modify it to suit your own needs. Credit not necessary
2
Quintino Pixels. (2020). Wasteland Platformer. Available: https://quintino-pixels.itch.io/wasteland-plataformer-tileset. Last accessed 15/12/2020.
This asset pack can be used in both free and commercial projects. You can modify it to suit your own needs. Credit not necessary
3
o_lobster. (2020). Pixel Art Metroidvania Asset Pack. Available: https://o-lobster.itch.io/platformmetroidvania-pixel-art-asset-pack. Last accessed 15/12/2020.
Every asset within this table is a PNG.
Here I have exampled my file organisation in both Unreal Engine and my local files. Within my "In Another Castle" Folder I have placed my source folder containing all relevant other folders I will need in the process of producing my game. As for my player folder, it contains appropriately named files with a clear indicator to each file type and version so that I am able to easily locate a required file if needed.
As for my Unreal organisation, each folder I will need has been created and each asset within the folders are appropriately named depending on their state. E.g Flipbooks will contain the lettering _Flipbook after their name.
As a side note, each flipbook that requires collision in the image above is set to first frame collision as this takes the first sprite in the sequence of the flipbook and takes its collision using it for the whole flipbook.
LEvel production
To produce level 2 of my game I began by importing the wasteland texture, as this was the tileset I would be using for my level 2 abyss theme. The tileset I have imported can be used in both free and commercial projects and states that no credit is needed when using the asset therefore I can freely use this asset without any copyright issues becoming apparent. I then applied paper2D settings in sprite action, as I have done for each asset I have used and generated a tileset naming it appropriately. Within the tileset, I then set up the collision for each piece.
Next, I created a tilemap as this is the most efficient way of creating a 2D level. After watching a short youtube video on the basics of tilemap usage, I then created 3 separate layers and set the separation per layer to 10. The gallery below showcases the steps I took in creating the level.
Laying out the ground layer.
Filling the foreground layer.
Laying out the ground layer.
To create these animated sprites within my game, I have used the free online editor Piskel. Within Piskel I have utilised a range of techniques and tools to lead me to my end product. These tools include pen, paint bucket, eraser, rectangle selection, lighten, darken and circle. Furthermore, I have watched various youtube videos on the topic of 2D pixel art and animation creation in order to better my skills and produce higher quality sprites for my games.
On the left (above this text box) is my health pickup, I have designed a floating soul as my pickup as I wanted to be original in my creation instead of creating something like a basic floating heart. The pick also takes inspiration from reapers old souls from Overwatch and fits the magic/fantasy theme of my game well.
On the right is my moving platform for level 1 of my game. The cloud fits well into my level as it starts off in the sky and is surrounded by other clouds in the background. I have edited the pattern circling the cloud in three different scenes to give the effect of movement within the animation.
The image above displays the blueprint of my health pickup. Many reoccurring nodes have been used here to allow only the player to pick up the health soul and heal 25 health unless they are already at full health. The "Cast To Pixel" node is what ensures only the player is able to pick up the health soul and the "Branch" node is what handles if the player heals or not based on their amount of health.
Another blueprint that utilises the "Cast To Pixel" is my WinCheck blueprint which the endpoint to each of my levels, with the sprite of a portal that I created in Piskel. The image to the left demonstrates the use of a box collision to check if the player has entered the portal or not.
A branch node is also being utilised again, this time the branch node is being used along with a boolean check to prevent runtime errors from occurring while the 3-second delay runs before opening the next level. I have also added "Create End Screen Widget" and "Add to Viewport" node so that it displays text to the player when they have completed the level.
Each blueprint above has been created using the Actor parent class, this allows the blueprints to be placed in the world and depending on if they have a sprite component or flipbook component the selected sprite or flipbook will be displayed.
rEFLECTION
I am happy with the design of my level so far and what I have produced, In future I plan to add a lot more to the level leading on from this basic start. I think that in terms of timings I spent a lot longer on the tilemaps than I maybe should have as it denied me possibly adding more features to the level in this stage. If I were to do this again I would allocate more time to the production of other assets like smashers and character movement for example. This would also allow me to finish the work I started on my other levels. One area that I feel that I have enjoyed the most within the production of this game so far is working with Piskel to create my sprites and add animation where necessary, I find this aspect of game creation highly enjoyable and I feel as if the work I have done within Piskel is at a high standard, although there is always room for improvements.
Based on my initial design I would say that this end product has been successful in capturing what I wanted from those initial ideas and changes have been made to further develop those ideas. One of those changes includes the switch from an underworld/hellish landscape to an abyssal setting which is more original and has a unique aesthetic.
One issue I ran into when creating a sprite from my background texture was that Unreal was automatically changing the colour of my texture. After asking for help I discovered that Unreal was changing the compression settings and that it needed to be set to UserInterface2D. I was then informed of how naming worked.
-
If you import a file with a name that has a suffix of D (For example, myImage_D) it will import as a Diffuse Colour Map (Standard format)
-
If you import with an _N suffix it imports as a normal
-
If you import with an _M it imports as a mask
Another issue I ran into was to do with my player. The falling animation did not activate when I walked off a ledge. I fixed this issue by going back over my blueprints on sprite animation and amended my blueprint so that it now functions properly. The falling flipbook was not selected on the state select for falling and is now fixed and working.
Another problem I faced was that my player was unable to walk up slopes, after searching around in the player movement section I located the walkable floor angle variable and changed it to 50 so that the player is now able to walk up slopes.
Feedback
Feedback- "Looks good so far I like the cave system look, I would say add a more detailed background other than a static colour."
Response- I have now added a background with detail that fits well within my level and adds a lot more to the game as a whole.
Feedback- "I like how smooth everything looks because of the corner pieces but the levels of lighting look a bit off."
Response- I have edited the global processing settings and changed the temp and tint.
Feedback- "I think you could maybe add more challenge to the areas"
Response- I have now added spikes and will in future add other obstacles and more challenges.