Unity
SunOracle Games LLC
I was invited to this company to fill the role of programmer on a 2D Platformer / Metroidvania. I brought my programming and team experiences into the company to help establish the programming department and procedures.
UE4
Collaboration
Me and 2 friends made an old-school grid-based medieval RPG. I worked on Items and inventory, the party system, and parts of the town map.
Unity
2023 Winter Game Jam - ArtU Game Club
Over 1 week, we created an infinite runner that swapped between 2.5 themes and progressively got more chaotic. I, along with 3 modelers, chose infinite runner in order to have a simple gameplay that we could polish and add additional models and mechanics as time permitted.
Download it here!
Unity
Procedural Content Generation Demo
Generates procedural cities using a generalized Binary Spatial Partition system.
- The road map - Roads are generated in a grid-like pattern, but not uniform in size or shape.
- The zoning - A separate layer consists of "zoning" such as Residential, Industrial, Business, Office, and Hybrid.
- The blocks - Each partition in the road map BSP is subdivided again using parameters specific to lot size and shape. These partitions are where individual buildings are placed and scaled to fit the partition.
Building size and choice is based on:
- Location: Corner or Edge of a block (generated by road map BSP)
- Zone: City zoning ordinance (generated by zone BSP)
- Population: Tuneable curve on CityGenerator component.
- Size: Tuneable curve on CityGenerator component (generated by block BSP);
Buildings will be selected on a simple weighted random from a specified list (Example: Corner buildings of Industrial Type).
There are 5 zone types:
- Residential (green) - Family homes and Townhouses
- Business (blue) - Stores, markets, etc.
- Industrial (yellow) - Warehouses, factories, etc.
- Hybrid (magenta) - Compact city housing, businesses on ground floor
- Office (cyan) - Offices and corporate buildings
Additional Notes:
- Building height scales by floors, which is determined by the population density of the center of the lot, as well as the max floors configured for the given building. This way, you could have the same building be reused in various places with different heights.
- This was a final assignment for my Procedural Content Generation class, in which I received 100/100 credit.
- The buildings were made with primitive shapes in Unity. They are badly unoptimized. The lag you see in the demo is due to the amount of GameObjects in the level. Collider Components are used optimally (only on the ground level of buildings).
- This generation method is great for racing games, where the center of blocks is unseen.