Thoughts on Unreal 5 Reveal So Far


Been thinking about the latest Unreal 5 game engine reveal. In particular, since I work as an independent game develop and gameplay programmer, the things I tend to seek for in a new game engine is what features it provides, and with it, what cool game mechanics and systems I could implement. From that perspective, the reveal trailer opens…a few interesting opportunities, but leaves others wanting.

On the positive, the virtual polygon rendering system is genuinely a huge game changer. Without a question, some of my biggest struggles in level design is keeping the number of polys low enough for the game to be able to run at a consistent frame rate. I also trust Epic Games to have implemented an easy-to-use occlusion culling system to further improve performance. This does mean not only is it going to be much easier for environmental artists to develop highly detailed (presumably static) environments, but also allow level designers to create larger worlds without a huge concern in performance drops. This does, indeed, open up a lot of possibilities.

As mentioned prior, I’m seeking for how to open up new ways of play, and that was where I came less impressed with the trailer. For example, the trailer only casually goes over what its animations, particle system, sound engine, and most important for me, physics engine can do. What about AI? Procedural generation? Improvements on Blueprints? Different platform and controller support? Music mixing? Even the parts that were demonstrated left me wanting. The trailer didn’t go over whether any of the destructive parts (e.g. ceiling caving in) were already pre-made or not. They didn’t go over what the complexity of implementing the particle system’s AI was like. And their demonstration of the sound system really appeared sparse at the moment. Even the new light engine didn’t feel too revolutionary: there’s already been a lot of games out there where playing with lights is the core mechanic, and more realism in it doesn’t add anything for a game designer. Only the IK animations stuck me as a standout feature apart from the virtual polygons engine, and helps really open the window to new and interesting kind of gameplay.

From a business perspective of things, it makes perfect sense to me Epic would focus more on streamlining the process of importing and rendering graphics. Just the idea of being able to directly import models generated from 3D scans opens a ton of opportunities for even indies. I’ve been dying to utilize a couple of cheap photogrammetry and 3D scanning apps for my games! That said, if I had to choose which company is making more interesting headway in new game design ideas right now, I’d have to hand it to Unity’s focus on Machine Learning. There are a ton of really interesting opportunities in that field that, I feel, still aren’t well explored yet. It’s just such an exciting area that is ripe for creating new ideas.

Leave a Comment on Thoughts on Unreal 5 Reveal So Far | Categories: Random

How to Split Up an Existing Unity Git Project into Smaller Unity Packages


Update 4/29/2020: indicated new dependencies added in Template Unity Package under Step 8 that should be left in the asmdef files.

After years of making a ton of Unity games, I’ve accumulated a lot of tools that are gathered into a single Template Unity Project that I start every game jam project in. That said, the project is now much larger than I would like. Some tools, such as the web host domain list, is only applicable for projects intended to be exported to the web. In addition, since everything is built on the same project solution, compiling new scripts takes longer than necessary. So I figured it was time to split up this mammoth project into smaller Unity packages. But how?

True to Unity’s theme of democratizing game development, they have extensive documentation on how to utilize the new Unity Package Manager to better import other tools and projects. Furthermore, mob-sakai has an excellent tutorial on how to setup a Git repository with the command, git subtree split, such that the Package Manager can easily import the project. But all these information are only great for creating a single Unity Package; what if, like me, you have a sprawling Unity project that you want to split up into multiple, smaller Unity Packages? After doing some research, I’ve came to the conclusion that the best method is to use Unity’s local package directory structure, and more importantly, git submodule add to nest another Git project to easily drag-and-drop project files into. This post will go into more details on how this works.

Continue reading “How to Split Up an Existing Unity Git Project into Smaller Unity Packages” 1 Comment on How to Split Up an Existing Unity Git Project into Smaller Unity Packages | Categories: Game Development, Tutorial

Looking into 2020


Starting in mid-2014, I’ve made a serious attempt at going independent with the funds I’ve gathered from work. Naturally, it follows that my goals has been to become self-sustaining. The theme for 2020, however, is stability in a different way: I’ll be dedicating a significant portion of my time improving my online presence and seeking for a full-time position, such as fleshing out this portfolio site, updating my résumé and LinkedIn profile, etc.

As one can probably guess, things haven’t gone as planned over the last 5 years. I’ve lost a significant amount of resources, including finance, health, and mental energy. It’s unfortunately been a significant contribution to my seasonal depression early this year, and has forced me to reevaluate a number of responsibilities I’ve accumulated over the last few years. It’s time I start pivoting to other more urgent priorities, and bowing out other duties to give way for other.

First, I have resigned from Tech Valley Game Space (TVGS). A non-profit game-making community and coworking space founded back in October 2014, I’ve been one of the key people to help grow the organization since it first started as a mere Meetup group. I’m incredibly proud of what I was able to achieve as the elected Executive Director during my tenure from April 2017 to, well, this month (February). Some notable accomplishments includes:

  • Executing the New York Digital Gaming Hub grant subaward for 2018 and 2019
    • Help execute New York state’s goal of encouraging more game makers to work in the Capital Region by improving TVGS benefits, establishing new events, and promoting the local region abroad.
    • Budgeting equipment, outsourced tasks, travel, and other business development tasks to build a more stable non-profit and providing more meaningful benefits to members.
  • Lift Off: Diversity Incubator
    • A six-week long program dedicated to mentoring underrepresented minorities and women to learn how to make their first game. Up to seven applications are accepted by the event organizers to be paired by a mentor that’ll meet weekly.
    • My involvement includes research, documentation, gathering resources (both people and materials), finding speakers and mentors, budgeting, preparations, and conducting the event.
  • Protostar Prototyping Pitching Contest
    • A one-day contest of teams pitching their game ideas to a group of industry experts on an opportunity to receive cash prizes to fund their project. The program is intended to both provide funding to deserving projects, as well as give an opportunity for local indie developers to receive expert feedback on how their pitch went.
    • My involvement includes budgeting, setting up necessary technical framework for the judges, preparations, and conducting the event.
  • And so much more!

I did this, while still working as an unpaid volunteer (by choice), not unlike my original co-founder role. While I still believe in the TVGS goals of making game development accessible to everyone, and remain optimistic they’ll grow beyond their grassroots origins, alas, I still need to put food on the table. As sad as it sounds, it’s time I leave the community to better hands, as well as improving my own well-being.

Second, I’ll be working on creating a more focused online presence this year. This includes establishing new online profiles, having a better content creating schedule, and deleting a number of profiles that either have been a serious source of stress, or I have not had the time to dedicate to. I’ve been aware that my time at TVGS has made it look like I have “disappeared” off the face of the internet, which I hope to start amending this year. First, I’m redesigning this website to put a stronger emphasis on the portfolio and (eventually) its videos. I also hope to start setting up a weekly development live-stream this year, both to encourage myself to keep a steady game development schedule, as well as slowly build a community and audience. For the profiles I will be deleting or removing myself from, I’ll be posting a prior notice on when that will happen. For example, I’ve already posted I’ll be closing my Patreon page sometime this month.

My final goal for this year is to return my focus to game development again. As much as I love networking and speaking with people, I’ve had a strong itch to finish a few projects I left hanging for quite a long time now. My first goal is to split up the Template Unity Project to smaller Unity Packages, both to make it more versatile, and reduce the size of future game projects. I then hope to return to Air Flip Drive, and re-examine some of its game design flaws and technical debt. In the meantime, I am indeed looking for paid full-time position. If you’re in need of a gameplay programmer or a Unity developer, don’t hesitate to contact me.

Here’s to a new and wonderful year!

Categories: Retrospect, Updates

Global Game Jam 2013


Hey, everyone.  Global Game Jam is less than a day away, and I figured it’ll be a good time to provide some practical advice from a seasoned jammer who’ve went through 3 Global Game Jams, and at least 5 local, 8-hour Game Jams.

How it works

Before we get to the advice section, though, here’s a brief description of how Global Game Jam is conducted.  It’ll help frame my suggestions later.

Global Game Jam is a global event where teams attempt to create a video game, board game, or card game related to a common theme in under 48 hours.  At most locations, the Jam starts at 5:00 pm (local time) where an introductory video is shown to get everyone comfortable.  The theme will be presented at the end of this video, and members are given about an hour to brainstorm on their own game idea.  Each participates will present their idea to everyone at the end of this brainstorm session, and teams are created based around popular concepts.

Preparation before the event

If you intend to make a video game, I highly, highly, HIGHLY recommend that you learn how to use a game engine (NOT a framework).  Such skills will prove to be useful regardless of whether you’re a programmer, artist, composer, or a writer.  For starts, I recommend playing around with GameMaker for 2D games, or Unity for 3D.

I also recommend bringing a laptop if you have one, even if you’re making a board game or a card game.  There’s going to be a lot of typing and re-writing going to be done in your game, so the faster the tool, the better.  Plus, you’ll need the internet to submit your game, too!  Even if you don’t have one, most site provides computers, so I wouldn’t be too worried about it.

Lastly, if the site you’re going to is open for the whole 48 hours, bring a sleeping bag and an extra set of clothes.  I will guarantee you you will stay up for a long, long time.

Coming up with an idea

Anyone with a bit of knowledge on the gaming industry will know that most console games are made by teams larger than 30, for 3 or more years.  For an event with only 48 hours, and team size of less than 10, attempting to make a game a size of a console game is, to put it lightly, impractical.

On top of that, the idea must be related to a theme.  Unfortunately, the Global Game Jam theme is kept secret until the very day of the event.  It’s highly unlikely that any ideas before the event would mesh well with the presented theme.

Thus, you will have to come up with a simple, Angry Birds-style idea on-the-spot.  Additionally, the idea should at least provide a game mechanic to build on, such as how the game will be played.  I personally have several sheets of paper ready before the theme is presented, and write down every notes and game mechanics I can think of that vaguely reminds me of the theme.  The rules doesn’t specify how much the idea has to be related to the theme, after all!

Also see: Coming Up With a Game in Global Game Jam.

Team building

What you need for a team, and how many people will be entirely dependent on what game you’re trying to make.  The criteria I provide below are what have personally worked best for me.

For team size, with a game like Angry Birds, I found 3 or 4 members were optimal.  If a game idea is art-heavy or philosophical, I would go for 5 or 6.

If you intend to make a video game, I strongly recommend having at least one person devoted to making artworks, and one person devoted to programming.  If you plan on making a board or card game, devote one person as a writer for all the rules.

Development

First thing first: do not get attached to your team’s game idea.  Be prepared to scrap everything the moment you notice the game won’t be fun.    Even I personally scrapped my game ideas twice before.

Since it’s entirely possible that this will happen, your team should make something playable as soon as possible.  Forget about the artworks, sound effects, even the menus and the end-game results: the sooner you know whether the basic gameplay of your game is fun or not, the better.  If it’s not fun, scrap it, and make another game again as rapidly as possible.  Polish can always come later.

Time is of essence, here, so you should mainly stick with the tools you know.  If a feature is taking more than an hour, forget about it, and move on.  If a bug is going to or already is taking more than an hour to fix, hide it instead.

Lastly, have your game playtested by people outside of your team as soon as possible.  Keep note of where they seem to “not understand” about your game, where they enjoyed the game, and where they didn’t.  Playtesting help prioritize which tasks are more important, and may even reveal that some bugs may not have to be fixed!

Closing note

Above all else, have fun, be persistent, and make sure you get a lot of food and rest through this exhilarating event.  Good luck!
[social_share/]

Leave a Comment on Global Game Jam 2013 | Categories: Game Development