Posts

Showing posts from 2015

Winter Break

Image
Now that my projects for fall classes are behind me I can focus my time and energy on improving my capabilities with UE4 as well as work on a what I hope will be my first commercial quality project. Of course I don't expect to finish it with my one month off but I hope to have it in such a place that I will be able to enter it into a competition my professor talked about. What is the project you ask?

I'm drawing inspiration from a few different things however if you've ever played the game Shadowrun on the Genesis, and particularly liked the Matrix "mini-game", then you will love my project. For those that are unfamiliar you can see a matrix run in the following video.


In fact when Shadowrun Returns was created in 2012, one thing many of the backers wanted was a matrix much like they had back in the genesis version. Although the game was a great success the designers chose to go another route with Matrix combat. Personally I really liked the game however the matr…

The Dark Worlds and touching the Environment Query System

Our team was having a really hard time resolving an issue with our Ranged Tower sticking to one enemy and only changing to another if that one died otherwise it would just ignore the rest. One of my teammates has spent hours upon hours on this, had extensive help from the professor but no solution was working. I was convinced they had tried everything possible and the only way to do it was to edit the engine itself in C++.

I decided to do a search and see what I came across, if anything, that might help. It was basically a shot in the dark. The first thing I took a look at was something called "Environment Query System", referenced in the Strategy Game example in the online documentation.

By utilizing this code I was able to condense 10 nodes into 3. First things first I had to turn on the experimental EQS system under Editor Preferences. Out of the whole guide to do what I did I only needed to create the Environment Query blueprint. Editing it, on the query graph add a Acto…

Quick blurb about "Remove From Parent" node.

So while playing around with my Fire Simulator I had multiple Widgets added to the viewport at the same time. I had read some pieces about children however what I glossed over didn't explain it as well as I needed and what I ended up doing was removing all widgets then re-adding the HUD. This was inefficient and was readily solved by one single node, "Remove From Parent".

This node can be used to remove single widgets from the viewport just by linking it to the widget created. How did I miss this? I don't know, but now hopefully you'll have learned from my mistake.

Fire Simulator and Health Bars

On our Fire Simulator game for Simulation and Serious Game Design there is one thing I would like to discuss in detail. That is a health bar, in our game used for the health of the players lungs.

The first step is to create your health variable being either integer or float, its up to you, on the character blueprint. I feel float is better in this case because you can make very small changes to it on an event tick for debugging and such. Compile your blueprint, and give that a starting value of 100. Now you can do whatever you would like with that health on your character however for the purposes of this demonstration you could simply have on event tick linked to setting the health variable with that set to a get the health minus an integer or a small float like .1. Keep in mind there are 60 ticks per second so if you leave it at one per tick, you'll go from 100 to 40 in a single second.

Next create a widget blueprint. Within the widget blueprint you only need to bring in a progre…

Update on The Dark Lands

So the first thing I started working on was our monetary system. I thought it would be cool to instead of using money, use the bodies of our enemy for currency. This would then mean we build our towers out of their bodies, so maybe in the next week we can find or create a skeletal texture to use. Also our soldiers could be body-less ghosts and/or wraiths. Now the trick with any currency system is balancing. It can take a lot of play testing to find the right balance for your game.

To start with I went to our TopDownCharacter to create the corpses float, could be integer, variable that will be used. I went over to our parent enemy blueprint and simply added to the on death trigger we have. When one of the enemy dies the corpse value increases by one. On the HUD I had already set up a text box with a binding to an event. In that event I had to quite simply "Get All Actors of Class" being the TopDownCharacter where the original variable is. Pass the Out Actors into a Get fun…

Update of Fire Simulator

For my Simulation and Serious Game Design Course my partner and I are making a Fire Simulator. Essentially it is a simulator to demonstrate what to do and what not to do in the event of a fire.

Over the past week I've worked on the layout of the floors creating a semblance of realism to the size. In UE4 1 unit is supposed to be 1 cm, so 10 would be a decimeter and 100 units would be a meter. Now for us non metric folks, 1 meter is equal to 3.2 feet. A standard ceiling is roughly 10 feet high which would be 3.125 meters. Translating that to UE4 units it would be 312.5 units. For rapid production I've decided to go with a flat 300 units for the height of each floor.

Also the wall, floor and ceiling thickness is something I took into consideration. The default is 10 units, so 10% of a meter or .32 feet. Double that, one for each side its .64 feet which sounds about right to me. Technically a 2"x4" is normal for drywall and stuff. .1 meter or 1 decimeter which is 3.9 inc…

"The Dark Lands" update

For 3D Game Development my group and I are creating a tower defense game in Unreal Engine 4. For this week we divided the workload evenly with my tasks to work on the HUD, the Spawning and Wave system, and lastly the economy.

For wave control each wave has a boolean, to see which wave components will be activated also because I plan to have that boolean transfer over to the UI so the player can see which wave they are currently on. When the waves start to spawn can be done a few ways. One would be to just use timers and no matter where the player and ai are at, the waves will just continue to stream out until they're all out. Another route that I've opted to go is for a counter to be run. One added to it for every ai spawned and when the AI is killed it'll take one away from the counter. Logically this should mean that once there are no more AI then the next wave will get triggered.

At this point I don't have the AI blueprints so I've just created the framework for…

Setting up Assembla using TortoiseSVN for UE4

First off go to TortoiseSVN.com and download their appropriate software, 32 or 64 bit and install.

While this is installing you can create an Assembla free acount at assembla.com. You have three choices of repository to create SVN, Git or Perforce. Create an SVN repository with a Creative Name.

After installation TortoiseSVN will be integrated into windows explorer. Create an empty folder and call it what you like, for this example I'm going to call it SVN_Projects, this could be the future repository for all of your projects if you'd like.

Right click on SVN_Projects and go to TortoiseSVN -> create repository here. You can create the folder structure if you'd like, which can help create things more organized however I didn't for this small project.

After the creation of the repository is completed you can create a new folder inside of the repository or within the trunk folder or just simply go to next step but I create the folder first. Maybe you want to call it Cr…

SVN vs Git vs Perforce and Hosting Oh My!

I've heard of SVN before, had a Github account for a while but never really taken the time to learn more details about them. Now was that chance.

I spent much of the morning and afternoon working on a method for collaborating on our group project. Originally I had started work using TortoiseSVN but I didn't discover a server method within Tortoise so I turned to the program VisualSVN. Where Tortoise was integrated into Windows Explorer Shell with VisualSVN it was like a standard application. After a bit of confusion I was able to get the repository shared locally but after numerous attempts I was unable to access the repository from outside of my LAN. This was unacceptable as our group is dispersed over a decent area.

I looked through the UE4 documentation with source control in mind and it appears as though they recommended a suite of programs called Perforce. Everything looked straight forward, I found a cloud hosting service for free using them. Upon first glance I was prep…

3D Game Development of Escape

Image
The game I've been working on for my personal project is called Escape, a twin stick shooter.  The past week has been an interesting week in development. I was encountering a few errors which were eluding my problem solving abilities.

The first thing was that my projectile (laser) was actually shooting through the enemy pawns, except for the larger warship from one precise direction. Interestingly enough it took a combination of two solutions to resolve. First off the projectile spawn was happening too quickly. I had it able to be fired constantly but by doing so it was causing a stream of lasers which is what I wanted but it would go through the enemy vessels or basically die on creation. Now I have the firing rate set at .05 with a simple delay.


The other solution dealt with the recreating the AI Pawns. Something was wrong with them and nothing tried fixed it. However shortly after recreating the Scout and Warship pawns with  an extra collision box and setting 'Simulation Ge…

Whats up

The past few weeks have been quite tricky with real life and when everything looked like it was going to stabilize, I broke my right hand. As I am right handed this is making everything more difficult, so my updates are going to be less frequent than I'd like. Have a fun Halloween weekend!

Progress Report 10/12

Sadly most of today was spent on personal matters so I had minimal time to work on any of my projects. The time I did have was spent on adding to the prototype for the clicker game. I added an upgrade button, to upgrade the return per click, set up a display for the return per second, and the return per click.

Thinking ahead, hopefully everyone does their part on time or ahead of schedule so I don't have to wait until the last minute. With math and art I guess it'll be ok to be with minimal time, but if the designer lags behind it may throw a wrench into the plans. Then again if I have everything done properly I might just be able to simply copy and paste, modify slightly and I'll have the new "unit" the designer added. With math and art, it should just be add the asset or plug in numbers. I kind of feel like the glue that will hold the project together.

The only thing I have left to do for my part of the project for class tomorrow is to research a save system, wh…

Progress Report 10/9

Today has been a very good day. First off things were clicking on all cylinders with the dice game. I decided to avoid doing a ds_list for the players and just have a single unit representing their attacking wave. I'm using a variable to hold the number of units that are attacking in that unit and completed the combat system with a couple new buttons. With the core of the game completed over the next three weeks I'll flesh out some of the looks to the game, create my own art assets and figure out if anything else needs to be done.

After that I tried to work on my Elevator Simulator in UE4. Last night in class we ran out of time to do everything that was planned, and my professor did a trigger volume for something that I felt I could use the OnClick button for. Simply put, in mine I had the call button for the elevator already able to be clicked which displayed  some text. I figured clicking on that could also set a variable, which I would then use in place of hitting e within …

Progress Report 10/8

Today has been spent on a couple different projects.

First my professor took a look at my Dice Game and essentially helped me change my roll button into a state machine system. I'm thinking of making my defense buildings small, simply because I can't fit that many of them on the screen without overlapping them a ton, which goes against the grain of having as many players as they want. I still have the code to create all the players into a ds_list but currently I have the attacking units represent the attacking players. I still have three weeks before this project is due so unless I am really swamped for the next three weeks I should be more than fine.

Second I started work on creating the prototype of a clicker game for 2D Game Scripting. If you've never played Cookie Clicker, don't. Its a highly addictive clicking game. I've warned you but here is the LINK if you are a glutton for addiction. Our game is supposed to be a clone of this game, there are many incarnati…

Progress Report 10/7

Today has been focused solely on the project for Advanced Game Design. With class being canceled we were tasked with submitting the documents prior to when class would start. Class would have started at 7pm and I submitted the work for the group at 6:59pm. Part of the reason is two of us did a great deal of the work, one more so than myself. However there are four of us in the group, so I wanted to try and make sure the other two members contributed in some way to this work. Sadly one didn't, but at least the other tried in the last three hours. He may not have done as much as the first group member but I am glad he did contribute.

This is a huge fault with group projects in my opinion. It is great when we can really reflect this when grading our group mate, even though it sucks to grade them poorly it is our only choice. However some groups will be given one grade, no matter how much or how little each member did. That in my opinion is just reprehensible.

I'm just glad this p…

Progress report 10/6

Today I've spent the day bouncing between projects. The first being  the 2D Tower Defense dice game. Most of the time has been trying to get the attackers units to function properly. They are getting created but the roll which is supposed to be a fixed single die has been instead happening instantly much to my chagrin. I actually haven't spent a huge amount of time on trying to resolve that issue. Instead I've focused my time on getting them to move as I want them to move, then to start combat properly.

The point I'm at though I've realized that my roll button might need different states or something like it. Hopefully tonight in class I'll get some good feedback from some classmates and my professor to get me on a better track or an efficient way to fix and improve what I have. Sadly though it's not like they can take a look at my code and ten seconds later know everything that is going on step by step. I tend to be able to help classmates pretty readily w…

Dice Game Progress

I've been working bit by bit on a dice game for my 2D scripting class. We work solely in Game Maker, in GML. Early in the course our class was broken down into a few groups and each group was given a package of dice and tasked with creating the framework for a dice game.

The group I was a part of decided after some discussion to go with a sort of tower defense game with one defender and many enemies. In fact here are the notes we came up with the framework for the game:

Castle Tower Defense (One [defender] against many [attackers])
Number of waves: easy (4), medium (7), hard (10)
X – 2 times the number of attackers - starting Buildings each getting a 2d6 roll
Buildings defense is the target roll with health at 100
Attacker rolls 1d6 to set number of units it attacks (y) with then rolls y dice to determine strength of
those units
Defense and strength determine number of dice to roll for that side.
If defense is > then defender takes no damage
If attacker is > then defender takes the…

Microsoft HoloLens

For this blog I'm going to be researching the Microsoft HoloLens. First some hardware details about the HoloLens. It is a headset of smart-glasses that are cordless. It is essentially a self contained windows 10 computer with multiple processors that is able to sift through "terrabytes of data" in real time. The smart-glasses provide a 3D optical head-mounted display, creating what is known as an Augmented Reality (AR).  The unit also provides spatial sound to create surround sound if you will. It does have a micro USB port for charging, buttons for brightness, volume, and power. Also there are LED lights to indicate power status and battery.

When using the HoloLens the device tracks your eye movement, so you're able to interact with the AR through a combination of your gaze, voice and hand gestures. A stark difference to many devices of similar design coming out right now is that the Microsoft is going for the Augmented Reality, a virtual world that layers over the r…

Legacy of the Strategy Genre

I have chosen to research the strategy genre because many of my favorite games have serious strategic elements. Originally I believe strategy games were targeted towards teaching military strategy, so leaders of forces would do a better job thinking ahead of their opponent. I do not believe that strategy games are limited to teaching military strategy anymore, such that there may be strategy games used specifically for a military however the genre itself has expanded greatly with many upon many subcategories. People from many walks of life play strategy games for many different purposes.

The very first strategy video game was called Invasion and it was made for the Magnavox Odyssey. Invasion was released in 1972. The board game Risk played as inspiration for Invasion. The game is played with up to four players, but two minimum. Each player is given a section of land with a portion of the castles. The goal is to conquer all of your opponents castles. To conquer your opponents castle you…