Saturday, March 20, 2021
Binary Trees
Friday, January 15, 2021
Cooking Mama Cookstar
Cooking Mama: Cookstar was my first professionally shipped game. I worked on the main development team at First Playable Productions. There I:
- Iterated on minigame design
- Implemented new minigames
- Iterated on motion control for switch and input backend
- Reworked the audio system
- Helped port to PS4
Motion control was an uphill battle, we constantly iterated on versions and the clients had a lot of input as to what felt better. One of the problems we experienced was that motion would get tuned to individuals, so one person playing the game would do it perfectly while someone else would struggle. The game now notices if you are having trouble and adjusts the thresholds, but it may have not been enough in the end. I would have liked more time to tune these values.
One of my first tasks was to rework much of how audio is loaded and played asynchronously. I added a system to preload the audio, and later down the line iterated on the CMS for audio.
The Ps4 port went over fairly smoothly. We have interchangeable input backends per platform, so once the Ps4 one was completed, much of the work was related to Ps4 specific mechanics like trophies.
I worked closely with the art and animation team to implement what they desired. Overall I would call this a great learning experience.
Real Street Festival
GhostRunner Study
This is a short project i used to study the game "Ghostrunner". I wanted to recreate the movement system in unreal 4 using C++. The animations were made in blender, and could use a lot of work, but the point of this project was to show my ue4 C++ ability.
For the wall running, I just got the cross product between the hit normal and the players up to decide what direction the player should run. I also smoothly lean the player camera similarly to how the game does.
When jumping towards a ledge, if the angle is towards the wall, the character attempts a ledge grab. A line trace is fired above the players head, and if it hits nothing a ledge is detected for the player to climb up on.
For the grappling hook, I add force to the player based on a curve. I also added a particle effect so you could see what you attached to. While I was at it, I cropped out the grapple icon from the game and animated it as a widget.
For the projectiles, I made it so the aim is predictive. I used a method outlined here. I then simply made the bullet raycast over its delta to reliably get the bullet collision. If the player is attacking, it is reflected, otherwise it restarts the level.
Overall, this was a fun side project. I really liked the feeling of the wall running and grapple. If I had time, I would spend more time working on the combat.
Nes Study
This project represents a curiosity that I have had about NES games and how they function, as well as an excuse to gain a better understanding of low level programming in assembly. In the above video, i show the project, and break down the code.
I had a lot of fun learning about the NES's architecture and what memory addresses are mapped to what function. There is a lot of experimentation to be done, such as switching out color palettes at runtime or creating animation by changing sprites.
It should be noted that each sprite is 8x8px so the character is made up of several sprites. This was common practice.
I later went on to add vertical scrolling, but got tied up with work, so the project was left as is.
The Fields
This page is under construction...
TownyFrowny
>Github<
Towny-Frowny was a small scale project used to study games like dwarf fortress. My main goal was to have a excessively large area simulated and displayed on the screen. I created a system for pathfinding, tasks, behaviors, player input and task assignment, and some basic AI.
The world is generated and displayed with 8x8 pixel sprites. The amount of sprite ranges based on the size of the world, but i wanted to try and display at least 1,000,000 simultaneously. This obviously was too many to render every frame, so i instead wrote the sprites to a render texture once, and rewrote individual sprites when that tile updated. This did however mean that I couldn't make objects go in-between tiles.
I learned a lot about C++ from this project, and now that I have some more knowledge i would like to go back and clean up the code some day.
Undelivered
Undelivered was a week long unity vr project based on an idea i had in a dream. I really like the internet trend of "Liminal Space", so i tried to add that concept into the games world design.
I had alot of fun working on the level design and "directing" the players movements with scares.
Code-wise the game is very simple, mainly relying on collision triggers. I wanted to focus more on the experience with this project than showing off my ability with programming.
A majority of the levels were created entirely in unity using pro-builder.
Thursday, June 6, 2019
WareFare
WareFare (Warfare + Wares) is a small project i worked on with some friends for a c++ class.
The focus of this project was to create a c++ system in unreal, which is designer friendly. In the system we created, you can design your own sword, forge, hammer, and sharpen it. Once you place the sword on display, it can be sold.
We used the Blacksmith Forge and Over 9000 Swords packs from the unreal marketplace.
The class split into two groups of three. The idea was that one group would make a blacksmith game, and the other group would make a sword combat game. The Sword combat game would then purchase the swords made by the blacksmith. Sadly though, the combat did not finish, but the systems are still in place within the blacksmith project. The swords info is saved to a .json file when you set the sword into the shop.
Monday, March 25, 2019
Thursday, February 7, 2019
Shutter
Saturday, January 5, 2019
OceanPort Mystery
Thursday, December 20, 2018
Sunday, October 28, 2018
Java 3d game engine
YIKES.
All that work? gone.
I am working right now on rewriting what i can to show off that i did indeed make it, but youll have to spare me for my lack of snippets in the mean time.
Saturday, October 27, 2018
OpenGL
I've been studying opengl in hopes of making a small game engine in c++.
I am following along with thebennybox's opengl game engine tutorials.
So far this has been a great learning experience and i am being introduced to some very advanced c++ concepts.
Here are some progress photos:
Saturday, October 20, 2018
AshFall
Store Page
Please visit the store page for more information, the following will be a breakdown of the code.
Map Generation Part 1
Monday, February 5, 2018
Wednesday, December 13, 2017
Seagull Ai
Here is an ai for seagulls. They fly around, land, and take off similar to actual birds. A world can easily be populated with these birds to bring more "life" into the environment.
Full Code Here
Thursday, November 30, 2017
Inventory
Wednesday, November 29, 2017
VR Experiments
Saturday, November 25, 2017
Thursday, November 23, 2017
Portfolio Revamp
- Full control over layout and design
- Sleek but not flashy design
- Smooth page transitions
- Integration of Blogger
- Responsive design, working on tablet, mobile, and PC
Sunday, December 25, 2016
Christmas Jam 2015
Saturday, December 17, 2016
Abyssal
I followed what i think to be fairly standard practices when it comes to organizing my code. I think the main game loop could be cleaned up. If i were to remake the project from scratch i would use jsons to hold the level data, that way i can hold more information each tile. I could then use a program called Tilded, which is perfect for this sort of thing.
Thursday, October 27, 2016
What Im Working On
Tuesday, October 25, 2016
Hello
My name is Nick Barber, I'm a programmer and game designer studying at Savannah College of Art and Design. I've decided to start a blog for a couple reasons. First off, being a programmer, i kind of feel like a black sheep here at SCAD. It can be difficult to show my work, as the first thing a player experiences is mainly visual aesthetics. I'll be using this blog to talk about what i'm working on and how i find solutions to the problems i'm finding.