the-krisney-way

Find my designs on awesome products by clicking here!

iTimeOut: NEW GAME!

Play Now by clicking here!

30 Days of Disney Jobseeking Advice

When jobseeking seems a little too boring. (April 2021)

The SLA Experience

Upcoming: A day in the life of an SLA.

It's a Kristen thing...

You probably wouldn't understand. :)

Monday, June 28, 2021

Unity Project: Marshie Re-treat

Marshie Retreat

This is an endless runner game made in Unity, featuring an original character, 2019.   You can find the Unity project by clicking the Github icon. ->GitHub

Concept


Main character sketch

Baby Boo just loves candy, but what parent would allow their child to have so much candy? In this game, Baby Boo is sent to another land – a Candy land – where he can collect all the candy he wants. Some candies, his favourites, give him special abilities to collect even more candy. But he must avoid some or else he will be transported back.


 Game screen visual




Requirements


Character requirements

The character, Baby Boo, will be moving forward (in the z-axis). Using the left and right arrow keys, Baby can move left and right respectively, allowing for movement in three lanes out of five lanes. The outer two lanes are boundary lanes.

He is given three lives initially and every time he collides with an obstacle, the player loses a life and respawns at the starting point, or the point of the last collected checkpoint.

The obstacles he comes across with are:

Choco Pool: These are part of the blocks and act as a puddle. They will have an empty collision box in front of them to catch collisions.
Choco Bar: A bar that blocks the way for about 3 units.
Rock: A candied rock that will sit on the path in any lane.
Bridge: For some of the path, it will narrow down to the middle lane and there will be empty game objects with box colliders on either side, to catch collisions.

The power ups he comes across with are:

Glow Candy: A very rare object to come across with. It will give the player another life.
Sugar Cube: Collecting the sugar cube rushes the player forward to the next checkpoint.
Gum Ball: Gives the player immunity from any collisions with obstacles.

The other objects he comes across with are:

Coins: Chocolate gold coins that should be collected to gain a score
Checkpoints: Flags placed every x units from the starting point.

The total score is calculated based on a few things:
The distance (number of units) covered by the player
The number of coins collected
Lives: a bonus for completing the course without losing lives
Number of powerups and checkpoints collected
Time?

(Almost) All objects will be instantiated randomly as the game progresses. Unwanted objects, or objects that have passed behind the camera will be deleted, as the player moves forward. Once the player has moved back, a new path will be constructed.



Asset Requirements


Character
Baby Boo: Character needs to be composed using a 3D modelling software. It needs various textures for the face (2d drawing), the body (2d drawing) and the limbs. It needs a RigidBody component, to use velocity and move forward, and a BoxCollider component to collide with other objects in the game. 

Game Objects
Pathway: The path needs to be made in a 3D modelling software as a prefab, so it can be instantiated multiple times according to necessity. A single row must have five blocks (or four, depending on whether the block has a chocolate pool, which must be a different prefab). The outer two lanes must have poles or lollipops which must be made up of a cylinder and a thinned sphere.

Power-ups and Obstacles
All objects must be made in a 3D modelling software as a prefab, so it can be instantiated multiple times according to necessity. All objects of this category will need a Collider component to allow the character to collide with the objects.

Gum Ball: A basic sphere will be used with a 2d texture. It will also use a particle system defined in Unity.

Glow Candy: A candy shape with a transparent green colour. It will have a point light on the inside to let it glow.

Sugar Cube: A basic cube with a 2d texture (like glass or sugar).

Rock: A rock mesh with a 2d texture.

Choco Pool: An empty block with a little animation to fit in with the path.

Choco Bar: A long rectangular shape with a 2d texture.

Coin: A cylindrical shape with a 2d texture.

Checkpoint: A flag-like object with 2d textures.

Scene
Canvas elements for the start and end of the game, as well as the game stats panel need to be done in Unity. The Start scene should comprise of ‘Start’, ‘How To Play’ and ‘High Scores’. The game stats panel should include number of coins, time elapsed, number of checkpoints, score and additionally, the power up in use, if any.


Design


The game consists of various scripts and actions. The most important scripts are moveCharacter, creatorScript and gameManagerScript.

The moveCharacter script contains all the character interactions, like movement and collision. The character will use the Rigidbody component and velocity to move forward in the z axis. A walking or running animation will be created for the character to move out of its stiffness.

On the character collision, there will be various actions accordingly. If the character collides with an obstacle, the lives variable in the gameManagerScript script will be reduced by one. If all lives are exhausted, a closing animation (particle system) will start before moving on to the end game stats. If the character collides with a power-up, i.e., a special candy, they will gain some sort of special ability or gain extra score, or both. If a collision happens with a collectible, like a coin or a checkpoint, the respective total, from the gameManagerScript script, will be incremented.

The gameManagerScript oversees the management of the base of the game. It allows the path to be created initially, at random, choosing between the various block prefabs. It also updates the status of the game (‘fail’ or ‘success’) and manages the lives and collectible variables. It keeps track of the playing time and the score.

The creatorScript looks at creating the objects (obstacles and power ups) on the path, at random. This is also done at random. It also interacts with the bridge triggers which should stop the obstacles from being created on the bridge (creating an impossible path).


Main activity flow diagram


Activity flow diagram: Start Game


Activity flow diagram: Play Game


Activity flow diagram: Moving forward


Development


Game screen visuals


I’ve managed to create the basis of an endless runner game. Using C# scripts to move the character and camera, along with canvas and GUI elements, this game has been designed to a basic level and can be improved upon given the time. The scripts use various features, like co-routines.

GUI: Player stats

The are several canvas elements also implemented throughout the game. The application opens with the StartScene which contains three different canvases. On button click, they switch between canvases respectively. On Play Game, the game starts off with a countdown. The high scores are stored using PlayerPrefs.

The LevelEnd scene brings up a summary of the game and the final score of the player. The player then has the choice to restart the game or quit.


Evaluation


Successful Implementation

  • -        Game design
  • -        Canvas elements
  • -        Scene management
  • -        Player controls (using C# scripts and components)
  • -        High score storage using PlayerPrefs
  • -        Unity animation
  • -        Sculpting in Unity
  • -        Material, Texture and Lighting
  • -        Particle systems
  • -        Instantiation of prefabs (choreographed and at random)

I had an issue with the player respawning at a given point. After the z-axis point manipulation was fixed, the lane kept changing after it collided with a power up. But I soon realized that the laneNumber wasn’t being reset to 0. The same issue arose with the restart. After reloading the scene, nothing was appearing except for the character. But that was also fixed by resetting all the variables that go along when the game begins.

On the SugarCube collision, the character moves ahead, but the Creator didn’t. All the objects were being destroyed and the Creator was supposed to spawn ten units ahead of the player.

There are still a few bugs in the game, like recognizing the bridge. In some situations, the Creator still creates random obstacles on the bridge, which isn’t ideal for play. One more issue is the randomly appearing ChocoPools in the path after the bridge, which still puzzles me.

The final game in Unity

Given the time for this project, there’s a lot that could’ve been done. One could be to improve on the graphics. An idea of progress through the game can be included, like various levels. Some difficult. Maybe and idea for special levels where you go through a dark course where you can only see a little ahead of you. Sound effects and audio could also be implemented for added bells and whistles.

Wednesday, June 16, 2021

Unity Project: GlobAR

GlobAR

This project was done as a part of the Creative Technology course dissertation, 2021.   You can find the Unity project by clicking the Github icon. ->GitHub

Abstract


Nowadays, smartphones are being incorporated for use everywhere. Technology is being used to make people’s lives a lot easier and remains to continue growing in all industries.

Geolocation has become a growing technology and is widely appreciated in the industries, especially gaming. When paired with technologies like Augmented Reality, it can amount to an immensely useful for everyday use as well, like navigation or calendars. This project will look into using Geolocation and Augmented Reality in an interesting way.


GlobAR. An Augmented Reality theme park. It offers a cultural and fun experience to people of all ages. Users would be allowed to experience different cultures by roaming around in a local park with their phone. Famous landmarks. Ambience. Sounds. All accessible through an app. A taste of each culture all at their feet.


Brief Introduction to Augmented Reality


Augmented Reality allows users to interact with virtual objects in the real world. AR has been around for a long time, and while it has only recently been in the spotlight, it's expected to continually grow in various industries. Its infancy was brought about in the gaming industry through the likes of Minecraft Earth, Harry Potter: Wizards Unite and the ever-popular, Pokemon Go.

AR at work

It hasn't stopped there. There are a few companies using Augmented Reality to advertise products, promote sales and even redeem loyalty points. These companies include the likes of Pepsi Max, Ikea, LaCoste and Pizza Hut. Between these top companies, there are a variety of AR techniques and innovative examples, like AR menus, home furniture visualizations, street entertainment, magazine visuals and more.

This project will use Augmented Reality as an effective medium in poster presentations, business proposals and in-class lectures, to enhance the attention and experience of the audience. In other words, having blank or minimal material for presenting and have a dynamic visual play with AR. 

It will also measure the effect and engagement of AR as opposed to other usual or mundane methods.


Geolocation


Questions like “What’s on your mind?” and “What do you want to talk about?” are getting old. The new question – “Where are you now?” And your smartphone just might have the answer to it. Geolocation services can be used via a GPS-enabled smartphone and can have multiple purposes, like to check-in to at restaurants or bars and let family and friends know where you are.

Apps that use geolocation can typically measure out to doing two functions:

- Collect your location

- Associate your location to real-world spaces

“Geolocation is the identification of a device’s approximate physical place.” There are three types of geolocation.

Three types of geo-location

Geo-fencing

Geofencing is a technology that helps to identify geographical boundaries via GPS and RFID technologies. Geofencing refers to drawing a virtual barrier around a location using users’ IP addresses or without opt-in for IP addresses. Ads inside this parameter can be seen on any devices by any users within this location. Unlike geotargeting, geofencing is dependent on a person’s mobility — like crossing a designated boundary. Relies most heavily on GPS (and WiFi, to some degree).

Best used to find users who: are nearby your store, venue, mall or service.

Geotargeting

Geotargeting refers to delivering ads to people that meet specific targeting criteria and are inside a defined radius. If you’ve defined your target market and want to show ads to those targeted people only. Location accuracy is not as important when using geo-targeting, as other preferences refine your segment. Relies most heavily on IP addresses.

Best used to reach users who: live or move about in a certain area, for whom you have other data like preferences or demographic info.

Beaconing

Beacons are highly specific, to the point that they can tell when users in a retail space go upstairs or downstairs or enter a certain aisle.

Best used to reach users who: are in a certain aisle of your store; who are on a certain bus or train; who are moving through a space like a museum

In fact, they are different targeting strategies that should be used for specific campaign objectives. Understanding the types of geolocation is the first step. It will then become easier to understand why, when, and how the appropriate targeting is determined.

One of possible solution to fight COVID-19 - according to NSO Group, geolocation data analytics tools has developed a product aimed at analysing data to map people’s movements to identify who they’ve come in contact with, which can then be used to stop the spread of infection. Mobile phone tracking information from the infected person, which it then matches with location data collected by local telco companies, enabling it to pinpoint citizens who were in the patient’s vicinity for more than 15 minutes and are vulnerable to contagion.


Design


The idea of GlobAR can be a lot of things, but it mainly derived from advancing technologies in the tourism industry. While this is a wide area to explore, this project will focus specifically on scaling and accuracies involved with map and geolocative technologies.

GlobAR Mind Map

The features of this application can be categorized as Learning information and Social experiences. Having the main goal of being a culturally dynamic theme park, these two categories are the main terms associated with it. Although primarily features the following: 
- Cultural facts and interactive story experiences for the culture-seeking
- Mini games and treasure hunts for kids
- Selfie opportunities and photos with virtual statues, monuments and landmarks

GlobAR initial concept

For layout and design to be optimal, there is a good working area that this application can use a style similar to Pokemon Go and something along the lines of having the map itself. Most of the application being AR related, there’s more real world application involved.

Having said that, there is more cause to make the app more legible by using obvious images, icons and features that are easily recognizable to the user.


Development


Locative technologies are a remarkably large area. Spawning maps on tabletops with Mapbox can be useful with unique games and even industrial functions, like architecture. Minecraft had previously come up with a real-world experience too. 3D messages? Who would have thought of that? Special messages can be positioned at locations to surprise people.

I ended up visiting the Eiffel Tower and the Burj Khalifa and I did it by bringing them to me. The Statue of Liberty was just across the street from me. I studied how accurate the positioning was and the scaling and 360-degree view of the models as well. Geolocation helped me visit some important locations that, in current times, may have been impossible or risky.

Tabletop AR

Mapbox Tabletop AR

Initially exploring ideas and starting out with Mapbox, I used their example scenes to generate different map styles in my house. This proved to be useful for building games and can be quite exciting to play with.

Mapbox and WorldScale AR

Plane in Hendon park (left); Burj Khalifa near Dubai school (right)

Further exploring techniques in geolocation, I came across World AR – placing virtual objects in the real world. There were a few problems with this, but this was the main focus of the application. And I was not limited to landmarks. Figure 10 shows a plane taking off in a park nearby to me (left).

Pick And Drop

Picking and dropping buildings on map

I also experimented with picking up buildings from maps and dropping them on empty spaces. For personalization of user experience, they could bring any space, building or landmark to their feet. It was up to the user. There were a few bumps in the road here, but with the Minecraft simulation, it was very similar to picking and dropping objects. This worked on a desktop or laptop very well, but on the phone, it would often place the tiles and maps over each other and would not update the map.


Evaluation


This seemed to be the most exasperating problem to deal with. While I did learn that the inaccuracy of GPS and locative apps seem different from device to device, it still suffered greatly through this project. I did spend time looking for spawned objects on my map, in the real-world setting.

Objects moving from place to place didn’t help either. This may have been due to GPS update and lag from the app. Objects in front of users scaled further away and sometimes went straight through them. Wi-fi connection did help keep the location stable to a certain measure.


Final video project: GlobAR

During such a chaotic time, with COVID-19 and the lockdowns, working with locative technologies and testing it proved to be limited. Even when it came to being at home and working, I made the most of what I could. There are a lot of techniques looked at throughout this project. 

Time did get away from me when it came to building and using these applications and working between them. Co-ordinating time and planning was a little bit of trouble, but I am glad to have gained so much knowledge in AR and locative media.

I hope to continue and build on this project to develop the app to its original idea. This project has explored the various locative techniques to be used in the final app. GlobAR will be an AR tourist destination.


Business Plan


Part of a different assignment involved drawing up a business plan for the project.




Tuesday, June 15, 2021

Unity Project: RubikRevolution

Rubik Revolution

This project was showcased at the BCSWomen Lovelace Colloquium 2020.   You can find the Unity project by clicking the Github icon. ->GitHub

Abstract


“Imagination demands curiosity.” 

Have you ever tried playing a game using a stress ball? Maybe drive a car with a piano? Draw onto a screen with a series of cups? Typing with a guitar? 

This may all sound crazy to you, or perhaps you’re just fascinated with the idea beyond belief. Why? Because people are used to the norm of using things like keyboards, joysticks, and touchpads as input devices. It’s usable, common, and quite possibly the best form of control when it comes to quick tasks on a laptop or a computer. But what if there was more out there? 

This article will explore the weird and crazy ideas of using different input devices, particularly a Rubik's cube, and how feasible they are in terms of ease of use and control.


Brief Introduction to Input Devices


When it comes to technology, an input device is a component of hardware equipment used to record data and control signals to flow into an information processing system, such as a computer. The main function of an input device remains to collect data or information onto a computer and allow it to be processed to a usable form. Examples include keyboards, mice, joysticks, scanners, microphones, and digital cameras.

Technologists have always been trying to playfully create new ways for humans to communicate with machines. We’ve got all sorts of devices from cameras to light pens and keyboards and trackballs and so much more, each one unique in their own field, for their own application. 

Innovation breeds curiosity. This is still an active area for creative ideas and growth. Take the keyboard, for example. Ever since the QWERTY keyboard design invention in the 1870s, it made its way for a long time and survived a high-tech world, well into the Digital Age. But over the last few years, it is being threatened by other technological advances. 

Continuing aspirations like speech recognition and gesture control are merging with newer technologies and it is being opened to a whole world of possibilities.

Design and Development


This project was done in three phases and consisted of four different ideas and scenarios in which the Rubik's cube was used as an input device.

I. Puppet Controller

Given the project brief to design a screen-based rag-doll puppet that is controlled in an unusual way, the devised plan was to use a Rubik’s cube as my unusual device. Having looked at the working of a Reactable, the idea was to use fiducial markers to control a puppet. 

Initially, for a trial run, a 2D version of the project was built using Reactivision and Processing. The below figure shows a net of the design I used and the actions it used to control.

Puppet project: Rubik net plan

The most efficient way to use this, and avoid repetitions, was to have three separate values. One to indicate the joint or body part (red), the second to indicate whether the movement was rotation or translation (green)* and the third was to indicate movement in a positive or negative direction.
*translation boiled down to rotation on various axes

The letters can be fairly confusing to understand, but it's a simple key. I took note of all the major joints in the legs (Hip, Knee, Ankle) and arms (Shoulder, Elbow, Wrist) and of course, we have two of each (Left, Right). The N and W stand for Neck and Waist which would also by definition, move, turn or rotate. (blue)

There were two movements that each joint had to perform - Translate and Rotate (noted in green)

And finally, the direction of the movements have to be considered - Up, Down, Left, Right for Translation and ClockWise and AnticlockWise for Rotation. (red)

Then moving on to the calculations of each joint. For every action, there had to be a subsequent reaction. For example, in order to move your wrist towards you, your elbow needs to be rotated.

2D character in Processing (left) and rough kinetics calculations (right)

II. RubikRemote

Furthering this idea of using the Rubik’s cube to control movements and functions, I moved on to using it as a remote control. Main functions were tracked, like play, pause, forward and rewind, and were mapped onto the cube. This didn't use the full potential of the Rubik's cube which could generate over 500 different functions given the right combination, but it did prove effective.

rubiKRemote spawned as a side project to this game. In this part, I used the fiducials in the same way for remote functions for a video demo presentation. The figure below shows it working. It picks up the marker and displays feedback – in the below example, it shows forward.

RubikRemote working

III. RubikRacer

rubiKRacer was explored first. A game that used a Rubik’s cube to control the
kart. There were four possible controls, that mapped to the arrow keys. It proved
to be easy to implement but challenging to comply. 

It proved to be very difficult to drive, mostly because the images were not being recognized immediately. In addition to this, the lag in recognition made it difficult to get the turns on time and took away some time, which is part of the objective of the game.

RubikRacer in progress

With regards to the turning, the implementation of a mimicked steering wheel was done with a lid and a fiducial marker. Using the rotation of the marker, the steering was looked into and proved much more effective.

IV. Gummy Bear Scare

This is another game – a board game. However, instead of using the Rubik’s cube with the fiducial markers, this uses dice. Why a board game? In machines, there expresses a sense of pseudo-random figures, in which case a generated number can never be truly random. Rolling this dice (with the markers) ensures randomness in play.

The objective of the game is to make it across the park. There will be eight path stones – four normal and four special ones.

Gummy Bear Scare stones

Because it’s a dice that you have to roll, keeping it in front of the camera will not work, nor is it user-friendly. The below figure shows the equipment placement that will be used in the implementation.

Gummy Bear Scare gameplay setup

After experimenting with the Rubik’s cube, this called for experimenting with other games. Evaluating the pseudo-randomness in machines got me thinking of a board game. This game was simple – get a gummy bear across the forest. I didn’t do much with the game, but the dice does provide actual randomness you would get if you played the game in the physical world.
 

Evaluation




At the event: BCSWomen Lovelace Colloquium 2020, Virtual, Discord

Being able to design and make interfaces, is an important aspect of being a Creative Technologist. You need to identify the project’s essential characteristics and the client’s needs. You need to map these to user abilities and needs. 

Implementing these games with tracking the markers wasn’t at all hard to implement. I think there were more problems with using these creations. Some gadgets will always have their own uses and with each in its own design, given the time to understand the workings of this, there are designs that work with other devices. 

These might not be the most optimum devices for their uses, but I’ve gained the creative skills to try and test and work out user needs to effective user-friendly design.

Although they may be slightly inaccurate or unpredictable, they are useful in their own ways and can become a cheap alternative to many state-of-the-art gadgets available in the market nowadays. You only have to have the imagination to look for the potential in various objects.

Moreover, technologies like Virtual Reality and Augmented Reality are taking over the digital world. There are also the possibilities of six degrees of freedom since cameras can be introduced into the environment, allowing the subject’s position within the room to be tracked as well.

Achievements


This poster won first place in the MSc Best Project category and received top feedback from students, having been spotlighted by a few connections on LinkedIn.

Check out some of the other participant posters and winners here.








 
Loading...