Day 1
Orientation. Interesting being at the receiving end of an online course. I do feel as if I know a lot of this already. Looking forward to more of the actual content.
Apprehensive that this may be a little too low level for me, and disappointed that all of the live classes are taking place at 7pm, when I put the kids to bed. Looks like I'll be missing them all and be playing catch-up using the recordings.
Adobe Portfolio set up and ready for course files
Challenge 1
Tell us about your favourite computer game
Weirdly, I've actually never been much of a gamer. I grew up with classic 8bit arcade machines, but never really had very much cash to spend down at the arcades and we never bought a console. The first computer game I remember blowing me away was the original Star Wars sit down arcade game, vector graphics and all. As a child I remember thinking that sitting down in that cockpit and actually flying down the death star trench, the future had actually arrived. That feeling of a fully immersive simulation is something I think I've been chasing ever since.
Challenge 2
Creating Game Textures
I've used Photoshop for a very long time but never knew how to make a seamless repeating texture. Very pleasantly surprised that I've already learnt such a useful technique.
See: https://jeromedipietro.myportfolio.com/game-ready-textures
Day 2
Very much enjoyed the Live Class. As I knew I couldn't make it live for the 7pm London session I just watched the Australian class once the recording became available. Frustrating not to be able to ask questions, but I may post my query in the help forums and see if I can get some joy there.
Again, very pleasantly surprised that I'm learning new techniques. Learning to create textures from scratch was a joy. Doing the crate was especially rewarding as I started to see how games made with hand-painted styles are created. It certainly made me appreciate their artistry all the more.
Generated/rendered textures: https://jeromedipietro.myportfolio.com/rendered-textures
More game ready textures (as I felft I needed more rock face options) https://jeromedipietro.myportfolio.com/more-game-ready-textures
Week 2
Been working on my terrain and of course realising that not all of the textures I lovingly created in the first week are particularly useful. It reminds me that the level design process is very much an iterative one.
Where it comes to textures it's almost impossible to know if it will be suitable until it's actually mapped onto in game geometry. Thankfully Unity is wonderfully flexible with the updating of asset files. With the Editor open, you can open the file in Photoshop then edit and save, and the file will automatically update in the Scene view. You don't even need to export to jpeg or png, Unity will quite happily work on psd files and export to the appropriate file format at build time, according to the optimisation settings for each platform.
A few things learnt...
The x/y size of the texture may need to be adjusted depending on the scale of your terrain. I found a lot of my patterns were too large but reducing their size settings introduced a repeat pattern that was too obvious. There's a real skill in getting the right image resolution/ size of the texture image.
The texture map slot for terrains additionally accepts a normal map. This makes textures render with a slight bump/relief which makes them look more realistic. A quick and dirty way of getting this normal map is to use this online tool: http://cpetry.github.io/NormalMap-Online/
Level design is all smoke and mirrors
It's very easy to go crazy and add a million trees and other terrain features without realising that this has a significant impact on performance. Occlusion culling and other in-built features will help, but you still have to realise that every bit of geometry and every texture loaded has an impact. When designing the terrain, the temptation is to realistically model every nook and cranny, but you don't need to - unless you're specifically going for an open world sandbox game. Otherwise, think about your player's journey through the level. Sculpt the terrain and add props in a way that guides your player to where you want them to go. Use colours and lights to help with this - people are naturally guided towards light areas. Ground textures like paths (or worn grass) are useful guides too.
The Unity Asset Store is full of useful free resources
You don't have to create everything from scratch. One of the best things about Unity over UE4 is the Asset Store. Some are paid assets but there are many quality resources available for free. In my pirate island I've made good use of free rock and bush models, as well as a few paid assets I already own.
The flip side of the UE4 vs Unity debate is that Unreal Engine is known for its impressive graphics quality, out of the box. However, Unity's new Post Processing Stack has changed all this. Other new features like the Timeline and Cinemachine also make content creation a lot easier. As I'd not used either before I decided to take the opportunity to create a cut scene to show off my progress so far.
Bonus Extras
MicroSplat for textures. A free-ish terrain shader that automatically generates normal and occlusion maps for your terrain textures: https://www.assetstore.unity3d.com/en/#!/content/96478
Recorder & Cinemachine allow you to create and export your cut scenes. Both free from Unity
Week 3
Customising default clothes in Fuse is great but everything does end up looking a bit samey so I'm going to try to make my own. Documentation and guidance for this is a bit hard to find so here's what I've found so far...
Importing Custom Content: https://helpx.adobe.com/beta/fuse/help/import-substance-character-clothing.html
Fuse Creator Pack: https://www.mixamo.com/#/software (This is needed to model your items to scale and position them correctly on the base model)
Create custom clothing: https://helpx.adobe.com/beta/fuse/help/create-custom-fuse-clothing.html
A lot of the Mixamo links I found posted on forums and via Google searches seem to have stopped working. I'm assuming this is due to the recent changes on the Mixamo website. A content directory for user generated Fuse content is sadly one of the casualties (https://community.mixamo.com/hc/en-us/community/topics/200221377-Fuse-Content-Directory) What a shame as this is very much what is needed for this app to really come into its own.
MakeHuman is an obvious free alternative to Fuse (http://www.makehumancommunity.org/content/downloads.html) It includes an online repository of community created clothes and accessories (http://www.makehumancommunity.org/clothes.html) Take note Adobe!
Finally, it's worth noting that you can import your own models into Mixamo and use it to auto-rig humanoid figures (not just ones imported from Fuse). Click on the 'Upload Character' (under 'Download' on the character page). Ideally models should be in the T-pose. It's not as good as rigging your own, but it's pretty good. The benefit over doing it yourself (apart from saving you the time) is that the bones are named in accordance with what Unity expects for a Humanoid rig.
Here's my current list of good sites for 3D resources https://docs.google.com/document/d/1-MCk6ed6NrZgwFeEG_rvcaAwTVTTX2cVsZqlJL-2Ck8/edit?usp=sharing
It worked!
Amazingly, importing custom clothes into Fuse isn't as difficult to do as I'd anticipated, although it did take a little while to work it out.
Your obj model needs to be UV mapped or you get a nondescript error on import into Fuse. Other than that, the default settings in Blender seemed to work fine. You also need to load in the Base Mesh figures (e.g. MaleFitA or FemaleFitA) from the Fuse Content Creator Pack. Use this to get the placement and proportions right.
The original hat model was made by Benjamin Huguenin and kindly made available on Sketchfab https://sketchfab.com/models/05360cf92138434d87fddbf5d504d8a1
The 'Create Custom Clothing' link above covers everything you need to know about the textures files. What's not immediately obvious is that there isn't what you might usually expect in terms of a Diffuse map. Instead, you need to provide a colour mask mat - with each area on the item set to a different primary colour (e.g. #ff0000 is area one, #00ff00 is area 2 etc.) These are what creates the different material slots in Fuse (i.e the pockets or sleeves on shirts)
Finally, once imported, I found that I had to set the different materials and tweak the setting for my hat and eye patch (using the Customise panel). Make sure you click on 'Set as default' and the next time you open Fuse all of the settings are remembered for that item of clothing.
Bonus Extras
From the excellent Extra Credits YouTube channel, a series on animation and character design:
Tracer & Pose Design 101: https://www.youtube.com/watch?v=ZmLkVtqjf1A
Week 4
Game 'dynamics', not just mechanics
Game tasks need to adapt and evolve with the player's growing skills
Progress so far
This week I've been worked on getting the basic game mechanics up and running. Although I've never done a game jam, this has felt a lot like I expect one to be - kit bashing assets, getting the code to a workable prototype as quickly as possible. Four weeks in and I've got a basic combat system, scoring, health, pickups, death all in place. Still more to do but getting there.
I could easily get lost keeping working on the details - tweaking animation transitions, making AI states a bit less awkward and buggy. I particularly want to add a flintlock pistol as a weapon pickup and provide a shooting mechanic for the player, but I'm weary of feature creep.
What parts of your game do you feel still need work?
With the basics in place, I now want to concentrate on the game's story again - expand the island to include new areas, where new encounters can occur and tie it all in with a basic quest system loosely based around a simple narrative. After the opening encounter with the group of fighting pirates, I'd initially I'd planned to add a cut scene with a drunk sailor telling you what to do next (basic conversation system, and audio lip sync) but in the short term I may just introduce scrolls as pick-up objects that give you text information on what to do next. Or even a map that slowly builds up?
I've lots of ideas and I'm trying to balance the fun of adding new stuff with the danger of stalling the entire project due to ballooning complexity. On my to-do list...
- Island natives, village/encampment (with some sort of treasure)
- add animal enemies - spiders ?
- Add traps (holes) and falling rocks (all great ideas by Mark Shufflebottom)
- A broken rope bridge you need to jump - falling a long way should add damage
What questions would you like your peers to help you with?
I've learnt that play testing is a key aspect is game development. "Fail early" is an incredibly useful concept - get your prototype out to testers so that you get feedback on how your game feels to others. It's too easy (as the main designer/developer) to take the gameplay for granted.
With this in mind, here's an initial playable prototype for you all to try. It's still a little buggy and has only limited scope in terms of game play but I'm looking forward to getting your thoughts and ideas.
- Does it feel fun?
- Is it easy to play?
- What do you think I should concentrate on next?
- Do you have any ideas for gameplay?
Download game prototype: https://drive.google.com/open?id=144RjOJe4UKQWsORyHZDAlcipgp3cDxsR (320MB) Sorry, currently just a PC build. Not sure if this works on a Mac?
It's not particularly optimised yet so you may need to set quality to lower that the default 'High' on slower machines.
Controls: WASD to move, space to jump / right click to pan camera / left click to swing sword (or use an xbox360 controller if you have one connected top your PC)
Pirate Cove playthrough 1
Describe how you’d add challenge and skill to your game in order to get the right level of flow.
That's the million dollar question for me, and the area I've most struggled with in my own game design. I've got to a proficient level in coding/development but that only part of the story.
Oddly perhaps, for a game developer, I've never really been much of a gamer (I get bored very quickly with other people's worlds) and so have relatively little experience about how games work - what other people have come up with as solutions to these problems, what kind of challenges/tasks are possible, what players expect or are used to. To put it another way, I've learnt recently that in order to make games, you need to play games, play them critically and analyse how they are put together.
So currently I have a very shallow plan of action - basic quest, with 2 or three target 'treasures' - each one with increasingly more difficult enemies or obstacles. But I realise that this isn't really what a game designer would talk about in terms of deep gameplay. I'm still struggling to know how to implement more dynamic mechanics.
Further thoughts
How can I make my game's mechanics more than just hack and slash, or click to attack. How I can I take my game design to the next level?
When this course began, many of us started by saying how much we loved classic arcade games. A lot of these early games have very simple mechanics: clicking to shoot kills an opponent. Although mobile 'casual' games have retained that spirit, PC and console games have grown since then (and so have gamers). Games have become sprawling branching narratives, expanding their horizons beyond simple singular objectives, they're using mechanics to articulate the story arc. It's not just click to kill.
That's the bit I'm struggling with. To a certain extent, game development is easy. It's a practical skill. Learn the software, learn to programme. But design is more intangible...
Interestingly, a podcast I regularly listen to explores exactly these kinds of issues this week: http://pretentiousgameideas.libsyn.com/episode-23-growing-as-a-designer How do you flex your muscles as a game designer? Skip to about 29 minutes in, and they start to discuss how to go about becoming a game designer - the take home being that you have to keep making little games (iterate). Don't expect to ever build your own version of a AAA game or MMO (these are made over many years by huge teams of people). Don't start off expecting to paint the Sistine Chapel, make little games just as an artist sketches in a notebook.
Something else that occurred to me this week is that this course is called 'Adobe Generation Professional Games Design Course 17'. It's not called game development but it's game development that we've been concentrating on; from texture creation to Fuse/mixamo and Unity. That's all programming, classic game development but what I now want to learn more about is game design.
Bonus Extras
Here's a list of some Game Design podcasts I'd recommend. Sadly some are defunct and no longer have new episodes but they're a brilliant repository of first-hand information from working game makers. (In descending order of interest, except for the last two which are less about learning and just a good fun insight into the world of game making companies)
- http://www.bluishgreenproductions.com/blog/?category=Gameology+Podcast
- https://gamedesigndojo.com/
- http://gamingmechanics.net/
- https://www.designer-notes.com/
- http://pretentiousgameideas.libsyn.com/
- https://www.gamedevunchained.com/
- https://forums.bscotch.net/podcast/
Week 5
Game Over
I learnt a lot seeing other people's games. The task driven goals (e.g. collect four items to finish the level) is new to me. Having mostly only played arcade games I'm more of the 'score as many points as possible / get on the scoreboard' mentality.
I spent the week fixing bugs and implementing a main menu - with settings and an online scoreboard. It isn't what you would expect in an RPG-style game but there's a lot to be said for having that social dimension (competing against other players for the top ranks on a highscore). I think it's a good hook to get players playing and coming back to the game in shorter, more casual games.
At the same time, I've also got started fleshing out the narrative elements in my game. Thinking about what to add next, and what kinds of levels might follow the initial arrival on the island. This has been mostly dirven by the kinds of enemies I've been adding; 'natives' and spiders in addition to the pirates and dragoons already in the game. My thinking is that after defeating the other mercenaries who've arrived on the island, the main character explores further inland and meets the locals...
The plan is to lead the player into a temple where you eventually win the islanders' gold idol, then have to make it back to the ship before being captured.
It leaves my game in a bit of an odd limbo between short time span arcade action and longer adventure/RPG. Not something I think I'll resolve on this current project but I've definitely become more aware of these kinds of design issues.
- play time (session length) and player progression
- social competition of scoreboards vs. the personal gratification of in-game quests
I'm also realising the complexity of controller inputs, not to mention the difficulty of catering for different devices. Having designed things to work with a keyboard and mouse - a fairly classic PC gamer set-up - I realised that some people will actually try it out on a laptop... and I'm no so sure that using the right mouse button to rotate and aim is going to work with that hardware set-up. I've started implementing joystick support, again not sure if that's the answer but it will help some players.
Completing the game
I've been caught trying to balance the fun of adding new elements and making sure it functions properly. I think the general advice is not to think too hard about optimisation until later in the development process, and when you know you actually need to improve performance.
Performance Optimisation for Beginners: https://www.youtube.com/watch?v=1e5WY2qf600
There's a lot of time consuming work that goes into atlasing textures and combining meshes to reduce drawcalls, or refactoring code to make it more performant. Due to the time limitatons of this project I'm now going to focus on getting the story completed - complete the level design and add my end of level state (enter temple to change scene) then collect idol to finish the game.
I've an ever evolving to-do list on Google drive which you're welcomed to look at if you want to see my development plans: https://docs.google.com/document/d/1nyx7IIOXDYTzrcJAoEJjCSJnhwV5FsrXyJobOP7_I3I/edit?usp=sharing
I think I'll stick to my original plan of aiming this for a high end gaming PC as my platform of choice. Having made a number of mobile VR titles where optimisation drives a lot of development decisions, it's been a welcomed relief not to have to be thinking about performance too much. Somewhat selfishly I'm mostly making this for myself and it runs great on my high end personal PC (120+fps), and adequately enough on my middle of the road work PC (40+fps).
Week 6
Alpha release
Certainly not yet ready for release but there's a game in there, for sure :)
Plenty of lessons learnt. The bigger a project grows the wierder the bugs become and the more difficult they are to track down. Complex systems have a tendency to behave in odd erratic ways...
The biggest technical hurdle has been a crash that only occurs once the project is built, not in the editor, and which seems to be triggered by screen resolution (and possibly PostFX). I've found that I can only safely run at a maximum of 1280x720 at High quality. Your own PC's performance will probably also affect this. Sadly a lot of time I would have liked to spend on game play and design was lost trying to narrow down this issue. Contacting Unity was helpful (crash dumps can be sent to them and you may or may not get a response depending on the issue). It turns out that it's a known issue related to DirectX 11. All a bit beyond my level of Unity knowledge, but I certainly know that I have to now really concentrate on scene optimisation (geometry, texture sizes, draw calls) and see if I can minimize the strain on the GPU.
The Temple level's currently just a placeholder, but important thematically so I've left it in preparation for adding in new content.
Also a lot of the animations and game mechanics are very rough around the edges, but game design really is an iterative process. I've learnt new techniques, like using Timeline to create cutscenes that are triggered within the gameplay, but I ran out of time in terms of refining the details.
I've been immensely grateful for all the complimentary comments left by other students - they've spurred me on to push myself way beyond anything I've made before, and within the time available I'm immensely proud of the results.
Download PC build: https://drive.google.com/open?id=1PkrGEylJFwXEDjVG7QpbJZoTE-WDNL7T (502MB)
Download Mac build: https://drive.google.com/open?id=1jtIDuxYkFXhIllHbkP1LW_akX65AWhse (519MB)
I'll be updating my Learning Journal over the next few weeks, and updating the build available on my Google drive as I continue to work on the game over the next few months. I'll definitely add a Mac version too once I've made a few additional last minute fixes (Done! See above). My plan is to get it to a stage where I feel it's ready for public release.
Do let me know if you come across any bugs or have any comments. My biggest game design query - to you the players - is how can I make the core fighting game mechanic , less repetitive. i.e. less about mindlessly clicking away to keep attacking. I'd love to be able to introduce a bit more player skill into the action but as a non-gamer I'm a bit lost for inspiration.