Thursday, 29 January 2015

Task 3 - Using a 3D Game Engine

                     

3D Engine, Unity – Patryk Kleczkowski Workflow:

Introduction:


To create my 3D game I have picked the Unity engine. I want to create a big and lively forest scene along with a small village and some landmarks scattered around. The play area will be relatively small but used effectively nonetheless. I will also have some mountain ranges for better visual effect of the level as well as some good variation in it. For my models in the level, I will mainly use the Unity Store as well as some outside sources for models such as Turbo Squid.

Inspiration:

While I haven’t directly inspire myself through other games, I have looked at examples that might help me imagine how I want my level to look like or what I want to include in it.


 
http://www.curse.com/worlds/minecraft/223117-mountain-basin-custom-terrain     
     

Some of the inspiration came from custom maps that were created in Minecraft, I specifically looked at the layout of how it combines forest, mountains and lakes together in a nice set. As well as look at how specific mountains look and what I can replicate.
  
         



Other games that I have taken inspiration from includes games like the Far Cry series with its lush jungles, forests and mountain ranges. I looked at those formations and tried to learn some interesting ways of using terrain to make the scene appear livelier.

I have started off my level by creating a border around it with a mountain range, and then putting an even bigger mountain across the level, essentially cutting it in half. My original plan was to have this big mountain in the centre with a castle on top of it, and then have 2 arches on either side, thus making a very effective looking level that is also functional. In the end however I have found making the archways too hard and had to abandon the idea, it would take too much time and too much resources just to concentrate on that.

I have thus abandoned the idea of having the two arches on either side of the big mountain and just left the big mountain in the middle alone, the intention of having a castle on top of it remained. I have added a spiral climb around the mountain to make it accessible for the player. I have also made the level smaller since I decided that I do not need that much space in the end. Also, I have made the mountains around the level taller to make sure that the player cannot escape outside the boundaries.


After that, I have done so minor modifications to the mountain as well as covered the entire level in a basic ground texture which would remain on the boundaries as well as the sides of the main mountain in the middle but would be changed everywhere else. 


After adding the basic texturing I have decided to add a simply skybox to my level for starters. I picked this skybox since it is mostly covered by clouds, and since my level will be covered in mostly dark textures, it will fit.


Here I have begun to experiment with different textures and what will fit, for now, it was the grass textures since the very first thing that I decided to do was a forest. I tried light and dark textures, but considered that while it might not look ok from my view as a developer of this, it might look ok from a perspective of a player on the ground level.



In the end I have went with a quite light texture of grass mixed with forest leaves. For now I felt it was sufficient and if it needed changing then I could do so easily. 



After I covered the area needed with my chosen texture, it was time to place the trees themselves, I have used the tree placer tool that comes standard with Unity, and placed quite a lot of them on the area covered up by my previously chosen texture. 



This is how it looked from the perspective of a player. At this point I have realised that the standard trees don’t really fit, and the ground texture will need a little fixing as well.



I started browsing the internet for some royalty free models of trees that I can use in my project and in the end found some good results. This was the first one. While with more detail (and thus there was a risk of hindering performance of the level in the end) it was also bigger, and therefore I didn’t really need that many of them in the end to fill up my forest. 



I have then used textures from unity store to texture the model properly and then also sized it correctly for my use since a little adjustment was needed. I also had to add a collision box to make the tree solid, since it wasn’t after I got it from the web. 



After the first tree, I have found a couple others that I also textured, sized and added collision boxes to accordingly. I would use them later on in other parts of the level to make it seem more varied and not just have the user see the same tree everywhere. 



I have then copied the first tree that I repurposed and pasted it, and repeated that process until I filled up the entire space of the forest with them. In the end, I found them much, much better than the standard unity trees, they were more detailed, larger, and also just took more space, just like a real tree would, instead of being tightly packed together like Unity’s trees.



This screenshot was taken from the players perspective upon entering the forest, I have made the trees quite large to have a good effect, now all that was left to work on was the texture of the forest.



As said, the next thing to work on was the texture that was found within the forest, I have applied another grass texture over the original one, a much darker one at that, but I didn’t erase the previous layer, instead I have joined the two together by giving the new texture some opacity so the old one would still show through, this ended up looking very good. I have then added a path through the forest, that later on would be continued through the level. 



I then started adding other additions to the forest that I had in mind, to improve the detail of the general area. First off was this little ancient fountain with some columns on each corner. I thought that it looked quite well and decided to use it. 



I then textured the fountain, gave it a collision box (since it didn’t have one to begin with) and also added some big rocks to either side in front of the fountain to add even more detail to the area. In the end the results were quite effective.



Last bit of detail that I wanted to add to the forest before moving on was little columns along the path that led through it so that they would have a connection with the fountain that was tucked to the side of the said forest. 



I had decided on adding two columns in the end, left each one next to where the path would split somewhere else, one near the path to the fountain, another one near the path upwards that led to the top of the central mountain. I also textured them and added a collision box accordingly. 



After the forest, the time came to create a small village right next to it.  I went onto the web to look for some good looking buildings and after finding them added them to my level and aligned them up properly. 



This is a screenshot showing the players perspective when he enters the town. 



So being happy with the layout of the town, I decided to start texturing individual buildings and this is where I run into a massive problem, the buildings that I were using were all modelled on the same layer, this meant that I couldn’t apply more than one texture to a building, which meant that the buildings looked extremely bad, I tried to find textures that would work both on the roofs and walls of the buildings but in the end couldn’t do it. I had to scrap the entire town and start searching for better models to re-do it. 



While I searched for new buildings for my town, I started experimenting with some lighting on my level and decided to do a little bit of a lens flare for good effect.



After some searching I have found good models on the Unity web store and started building a new town out of them, at this point I also decided to make the town much bigger than previously, since with this there were more buildings that I could use, so I could create a much bigger town without having the player realise that some parts of the town might be duplicates.  I laid out each building, as well as build 2 walls on either ends of the town with them using a gatehouse like buildings for entrances. 



After laying out the town I started adding colliders to it to make the buildings solid, added textures of both grass and cobble paths, and then at the end added smaller detail like wells, some stones, trees, and adjusted some buildings sizes/locations for better effect. In the end, I was very happy with this town and was kind of glad that the other one didn’t work out since it allowed me to explore this option.



After the town was done I had decided to start working on top of the central mountain and add what I planned to add at the start, a big castle. Not having luck in finding some good models on the unity web store, I went to search for a good model on the internet and eventually found a sufficient one. 

  
The castle was modelled on a huge grass area which I had to remove, with it, went the mote that was surrounding the castle originally. The problem with the top of my mountain was that it was very tight and thus I had to remove bits of the castle as well as shrink it down in size considerably for it to fit on top of the mountain. In the end however I managed, and kept most of the castle with me. 



I had then made the castle solid, and textured it with some basic textures. It was quite hard to do since there was a lot of smaller elements that had to be worked on individually, the removal of the basis of the model also seemed to have had an effect on some of the models that were left, which caused problems while texturing and editing. So overall it took more time than expected. In the end however it was effective and good looking.



After texturing the castle itself, I textured the ground around and inside it and made sure it looks okay before moving on. 



After that was done, I had started to work on the space in front of the castle, added a small village to it, some tree’s, made sure that everything has a collision box and is sized well and then created a cobble path leading around and down from the mountain. The problem with this village was that it was, similarly to the castle, hard to fit on the small mountain top and therefore I had to experiment quite a bit with some sizing so that it would look right but it would still fit on that mountain top, in the end I feel like I did well. 



After the mountain top was done, I made sure that the spiral path leading down from it was decorated with some tree’s and stones so that it wouldn’t be completely empty while the player traverses it. I have also made sure that the textures were balanced well and weren’t too light or dark. 




Then I moved onto the side of the map that I hadn’t worked on before, in this part, next to the town at the foot of the mountain, I had added some trees that varied from the previous ones, and added some big rocks, I made sure that everything is then textured correctly and everything looks good.



Finally, I have done another small village with two houses and some big rocks next to the forest and the entrance to the spiral way to the top of the mountain where the castle was located. I made sure that everything was textured correctly, and also added some smaller detail like wells and some overlapping textures with low opacity. 



To conclude, I feel quite a lot of satisfaction from my level, in many areas it took a lot of trial and error to fix all the issues I had with it but in the end I am very happy with it. I feel like I gained a lot of valuable experience that I will definitely use in the near future in building more levels, whether it would be with Unity or another engine. The main areas that caused me trouble were the texturing and sizing of models, as well as proper lighting.
If I were to do it again I would definitely use my own models, since then I know what I need exactly and I can create them to work with my level perfectly, rather than have to adjust to models that I found on the internet instead which threatened to make my level look bad in some cases. I would also try to work on my lighting to make it more effective and better looking, I would also try to work on my terrain, use it better to create more appealing and performance friendly levels. And finally, I would work on my texturing, try to make better and more effective combinations.



                     

Monday, 17 November 2014

Task 2 - Using a 2D Game Engine


                            





Patryk Kleczkowski – 2D Game Workflow

Idea:

The general idea for the game that I am planning to make is to make a simple sci-fi, star-wars like 2D side-scroller space shooter with retro sounds and graphics, a variety of enemies and fun and fluid base gameplay. In this workflow I will present my thoughts about the project and how I went through it.

2D side-scrollers, like mine, tend to have a very fluid but fun gameplay, and in many cases are represented by retro graphics and music/sound. They can also be quite addictive yet simple. I want my game to be representative of that, so I will use simpler graphics and more retro-styled audio design.

Visualisation:

I have taken the visualization from the video game from many different side-scrolling 2D space shooter games as well as some other 2D games.

There are many examples of video games that are already in existence that I can use for inspiration for different aspects of the game.

FTL – Faster Than Light:

                         

FTL has a very refreshed combat which is very action packed, complex but still very fun, I will not take direct inspiration from this game, since my game won’t be as complex, however I can take some inspiration when it comes to things such as background design, enemy variety, gun variety etc. Overall, FTL has a lot to present when it comes to sci-fi shooters.

Luftrausers:

                         

While Luftrausers isn’t a sci fi game, it is a shooting side scroller and can be very similarly compared to the game that I want to make. Luftrauser has a very good side scrolling mechanics and is packed with a lot of action for the player, the player has to constantly watch out for dangers, missiles, bullets and anything else flying his way.

To achieve an addictive and exciting experience, I will try to get some inspiration from Luftrausers, specifically trying to learn from its exciting gameplay which constantly has you on your toes and actually requires quite a bit of skill to get through without dying. In Luftrausers, the graphics are very well done and represent all the action that is happening on the screen. It also keeps the screen more alive and exciting even when its only 2D.
Gratuitous Space Battles:

                                   

Gratuitous Space Battles is another good example of a scrolling, action packed but very complex and strategic sci-fi shooter. This is a good inspiration if I will have enough time left at the end of the project, this game is very complex and allows you to create your very own ships from scratch using different components.

If I would have enough time at the end of the project I would try to include some strategic values within my game, rather than having it purely action based, which I feel like would enrich the general gameplay and longevity of the game.

Planning and Execution:






Here I have created a rough visualisation of the game that I want to create in Game Maker, the above pictures present how the player will look, the enemy, their projectiles and the background. I did this so that I would have a rough visualisation of what the final thing will look like, therefore I wouldn’t beat off track. The picture is simple, since it is just a rough plan of what I want the game be like when it is finished.

Blocking:


I have went into the Game Maker engine and started to ‘block out’ my basic game within the engine, seeing how it all fits together and whether I like it or not. Whether I should change something or not, and what effects it will have on the game, whenever needed, I referenced to my quick sketch from before to get a grip. Once I added all the core components and I liked how it looks, plays and feels I moved onto detailing.



Detailing:

As I finished up putting all the basic things into the game, I started to polish it up, try to get the best sound quality possible, made sure that everything looks solid and that nothing sticks out. I have made a solid job of it so that the game would and present itself perfectly.



Final Testing:

After all the polishing was done, I began to play through the game for some time to make sure that everything works perfectly, nothing crashes, and that there are no bugs. I also closed and opened the game a couple of times, basically did everything to make sure that I haven’t left any bugs in the code so that everything will work smoothly.

Remake: Tank Shoot ‘Em Up:

This is a game that I have recreated from the basic game that I have initially created, instead of a Space Setting, it is set up on a field, and instead of space ships you play as a tank against tanks. I think that this remake by me is quite good, albeit if I was allowed more time I would develop smarter AI, and instead of a scrolling background I would have levels, I would also add some better quality and fitting sounds and finally I would try to improve the graphics to look better, overall, the game can always be improved.
Sprite Editing:

For this game I have edited the sprites to fit this new theme. I had to make sure that their proportions are correct for the sprites, and that they are nicely done, with variation of colouring and texturing, I then had to make sure that the centring and collision mark is done correctly. After that I was done.




Video of the finished game: