Posts Tagged ‘game development’

UE4 BatteryCollector C++ Tutorial Upgrade from 4.9 to 4.18

Written by Zainab Al-Ansari on . Posted in Blog

If you’re like me and is new to both C++ and Unreal Engine 4, but is an experienced programmer and decide to dive right in to developing UE4 games with C++, you will see your only official option for a full-game tutorial series is the BatteryCollector.

But these tutorials were made in UE4 version 4.9, and a lot of breaking changes have happened since then.

I’ve gone through quite a bit of a headache following the tutorials, and so you don’t have to I’m listing the differences needed on your part to make it work with 4.18.

Download source files on GitHub.

In SpawnVolume.h:
#include "Components/BoxComponent.h"

In SpawnVolume.cpp:
#include "Runtime/Engine/Classes/Engine/World.h"
#include "Runtime/Engine/Public/TimerManager.h"

In BatteryPickup.cpp:
#include "Components/StaticMeshComponent.h" (we don’t need it in the header)

In BatteryCollectorCharacter.cpp:
CollectionSphere = AttachTo(RootComponent); should be CollectionSphere->AttachTo(RootComponent); this was fixed in tut10
#include "Runtime/Engine/Classes/Components/SphereComponent.h"

In BatteryCollectorCharacter.h:
The UPROPERTY macro category for CollectionSphere should be something other than “Camera”, as it is not a camera. I used “Collection”

In BatteryCollectorGameMode.cpp:
1. Add PrimaryActorTick.bCanEverTick = true; to the constructor, as Ticking is now false by default.

2. #include "Runtime/Engine/Classes/GameFramework/PawnMovementComponent.h"

In BatteryCollectorGameMode.h:
1. Make enum class derive from uint8 as such: enum class EBatteryPlayState : uint8 {};
2. Make sure to use MyCharacter->GetCurrentPower(), NOT MyCharacter->GetCurrentPower in game mode tick function for changing play state.

In ThirdPersonCharacter Blueprint Event Graph:

Download source files on GitHub.

Blue Door Red Door

Written by Zainab Al-Ansari on . Posted in Game

Blue Door Red Door is my 7th Game Zanga game jam submission, with the theme of You Always Have a Choice.

I worked on the game by myself for a few hours.

You can play below, I recommend playing in full-screen mode by clicking the full-screen button in bottom right corner.

Xbox 360 Controls:

Movement: Dpad/joystick

Xbox controller support was not tested, but should work.

Keyboard Controls:

Movement: WASD or arrow keys

Tools Used:

Unity 3D game engine

Project Source:

Download the project source files by clicking here. You’re free to use it for anything without attribution.

Please note that this is a throwaway prototype project and not suitable to build a full game on.


P.S: It’d be great if you could post some feedback on the game ๐Ÿ™‚


Written by Zainab Al-Ansari on . Posted in Game

Sadly is our GCC Game Jam entry, which ended yesterday. It has won a runner up prize and we couldn’t be any happier ๐Ÿ˜€

The game jam’s theme was Hope

Our team was made up of me, my twin sister Fatima and our friend Eman Naser.

You can Play Sadly by clicking here, Enjoy! ^~^

Xbox 360 Controls:

Movement: Dpad/left joystick

Jump: A button

Menu item click: A button

Menu item select: Dpad

Leave game and go back to main menu: Back button


Movement: Left/Right arrow keys

Jump: Space bar

Menu item click: Space bar

Menu item select: Up/Down arrow keys

Leave game and go back to main menu: Escape button

Tools Used:

Construct 2 game engine

Adobe Illustrator

Spriter for 2D Animation


P.S: It’d be great if you could post some feedback on the game ๐Ÿ™‚

Classic Pong

Written by Zainab Al-Ansari on . Posted in Game

In a bid to upgrade my game development prowess for the upcoming GCC Game Jam, I decided to make a series of very small and FULL game projects, starting with the classic Pong ๐Ÿ˜€

Enjoy! ^~^

Open in full screen


W/S for Player 1

Up/Down arrows for Player 2

Escape button to leave game and go back to main menu

Tools Used:

Construct 2 game engine

sfxr sound effects generator


P.S: I would LOVE some feedback on the game! Please hit me with all you got, no holding back! D:


Weekly Reflection #7 – New Changes

Written by Zainab Al-Ansari on . Posted in Blog, Reflections

Every Saturday I publish a report reflecting on the previous week. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Week

Character controller and mecanim scripting done! ๐Ÿ˜€ The programming for SHIFT is almost complete and the remaining work is mostly art and level design. Although my part is more or less finished, I’ll be helping out the other team members with their own work as needed. However, not the upcoming week as I’m preparing a mini game design workshop I’ll be holding for IGN’s convention next Saturday, as well as a showcase for BGD. If you’re in Bahrain next weekend, make sure to drop by and say hello!

Beside working on the game, I’ve been doing some maintenance on the website. Main change would be setting up my newย Monthly Newsletter.ย I realize 1 or 2 emails per week for each post posted is a bit much, so I decided to create a monthly newsletter to be sent out the last day of every month, and perhaps giveย exclusive tipsย for subscribers. You can subscribe here:


What’s Next

I’ll be preparing my workshop for IGN next week, and plan on redesigning the website a bit. Mainly the home page, to make it more attractive. I also have some posts coming up that would be especially helpful for beginner game developers, and plan on making such posts regular from now on, so stay tuned!
I hope you enjoyed my post! As always, comments are encouraged and welcomed. Cheers!

Weekly Reflection # 5 – Having a Backup Plan

Written by Zainab Al-Ansari on . Posted in Blog, Reflections

Every Saturday I publish a report reflecting on the previous week. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.

The Past Week

This been a slow week. Last week’s connectivity problems extended till Monday, as a result I lost almost half my working time and ended up trying to make up for it later. Nonetheless, I managed to complete this week’s tasks, mainly learning Unity’s Animation system, creating code standards wiki for SHIFT team and reworking player controls. I also read A Theory of Fun for Game Design by Raph Koster. Raph has quite an interesting take on games, and believes that games’ true potential lies in helping advance society. It’s a very short read, you can finish it in a day or two, but well worth the price. It opened up new possibilities for me, and I got quite a few concepts for games that am definitely interested in pursuing.

I’ve always wanted to share my knowledge with others, and decided to start a YouTube channel for it. I’ve made a poll asking for people’s feedback to help me choose my first subject, so if you haven’t voted yet please do! Click here to vote.

Analyzing Problems

I rely too much on the internet, I need to take more of my work offline so I wouldn’t be crippled by lack of a connection.

What’s Next

From now on I’ll prepare for the next week in advance, possibly during weekend, to eliminate my need of a connection or even a PC as much as possible. One way is to keep Unity’s and C#’s local documentation up to date as well as any other document, and another is to download any tutorial I might need. I like to use Keep Vid for this, which is an online tool that let’s you download from 50+ popular websites, including YouTube. Another thing I must do, is to confirm tasks and duties needed to be completed next week with my team members. A big reason why I was held back from working is because I needed to talk to our designer before commencing.

Weekly Reflection #2 – Prototyping

Written by Zainab Al-Ansari on . Posted in Blog, Reflections

Every Saturday I publish a report reflecting on the previous week. These reflections exist to demonstrate my progress, share my experiences and help transfer what I learn to others.


The Past Week

It’s been a productive week, and my wake-up trick helped immensely. After building a playable prototype, I ran a playtesting session with a couple of friends.


It’s very early in development as you can see, but prototyping early and often has lots of benefits, and I’ve already noted a major one. So far I’ve only been toying with a few ideas for mechanics, but the playtest helped me see the game inside. Now I know what game to build, and unless unforeseen obstacles come in my way, I’ll be releasing the game by the end of the month enshalla. (it’s small)

The biggest problem I had this week was with the playtest scheduling. When I’ve built a core mechanic, I didn’t want to make any assumptions on what sort of game would be good with it, and instead waited to watch actual players toy around with the pure version. I ended up wasting an entire day waiting without further development until I met my friends, and instead written an article to minimize lost time.

Analyzing Problems

The reason why I ended up wasting development time, was because:

1. I didn’t schedule a playtest early enough

2. I greatly overestimated the time I’ll need to build the core mechanic


What’s Next

Next time I need player testing, I’ll make sure to book players early. It will also be very helpful to find alternatives to in-person testing when not possible.

I hope you benefit from this reflection. I know playtesting so early can be scary if you fear judgement, but its benefits can’t be stressed enough. Unless you’re prototyping some kind of a patent, you don’t need to worry about people “stealing your idea”, and the benefits, from saved time to saved costs, far outweigh such risks.


God Bless, and please comment below with any thoughts ๐Ÿ™‚

Users VS Competition, and the Golden Age of Platforms

Written by Zainab Al-Ansari on . Posted in Blog, Game Tips

As I mentioned in my first post, I’ll be reporting on what I learn so you can benefit too and this is the first such post.


Back in April 2014, I attended a technology forum called iTECH Gulf, a famous regional event for ICT professionals. One of the presenters was Borut Pfeifer, a designer and lead engineer in the team behind Skulls of the Shogun, a successful turn-based strategy game for beginners. He talked about the challenges faced in development of the game, and some surprises they learned along the way.


One such surprise has to do with their most successful platform.


Skulls of the Shogun is available on Android, iPhone, iPad, iPod, Steam, Xbox 360, Windows Store and Windows Phone. Out of all of those, you might be surprised to know the most-sold version is Windows Phone edition. If you’re keeping with industry stats, you should be aware that Android has the biggest chunk of the smartphone industry, with iOS closely behind while Windows Phone is barely competing with the dying BlackBerry.


Infographic: iOS and Android Grow at the Same Pace | Statista

You will find more statistics at Statista


So, why is the game most successful on the platform with the least amount of users? To explain this, Mr. Pfeifer went on to give an analysis of the situation, and he described a general overview of a platform’s life-cycle:


  1. Early/Young: Platforms in this stage are only just sprouting, and generally don’t have many users or competition, proving development a risky bet. One such platform can be the Oculus Rift.
  2. Late/Old: Mature platforms are those with lots of users and competition. Although they have a much bigger potential user base than new platforms, the aggressive market requires luck and a good marketing strategy/budget to compete.
  3. Golden Age: These golden eggs are those who have already matured from their infant state, and have a big user base but the competition have yet to catch on.


According to Mr. Pfeifer, he believes Windows Phone is in its Golden Age. True enough, not many developers take Windows Phone seriously, and those who do tend to be beginners into the industry. Because of that, the Windows Phone Store is filled to the brim with low-quality apps and games, while Windows Phone users remain hungry for quality apps. Having a Lumia 520 myself, I can attest to that since I find it hard to get a quality app. So it’s no wonder that when a high grade game like Skulls of the Shogun came out, Windows Phone users gobbled it right up.

If you want to take advantage of that though, you should hurry up; because the number of quality games is increasing and soon there will be a fierce competition.


Bottom line is, to mitigate your risk as much as possible, you should try to target both old and new platforms, instead of putting all your effort into an already crowded market.


I hope you enjoyed this article, and if you have any further insight into the situation, please comment below ๐Ÿ™‚



About Z’s Laboratories

Subscribe to my newsletter

Required *