Sign in to follow this  
JZig

General Interest

Recommended Posts

This is my first time participating in Wizard Jam, and I randomly rolled Idle Thumbs Episode 193: General Interest. That sounded boring but my brain jumped to there being a literal General Interest who commands securities in battle, and the game concept came pretty quickly after that:

TitleScreen.thumb.png.dea96900380d1b8bd9d6aa2edad4118e.png

 

So it's a basic RTS, controlled with left/right click. You command your securities to take over other securities by buying them, and securities gain interest every second. So the challenge is in figuring out what order to capture securities and making sure they don't default due to excessive risk.

GeneralInterestScreenshot.thumb.png.6b09fb8fb11d24db7beb32759214b685.png

 

I just released it on itch so it's now available for playing on Windows. There's only 3 levels so I may come back to it later and build out the concept with more variety.

 

My background is as a gameplay programmer for larger dev teams so the programming was pretty easy but everything else wasn't. This is written using Unreal Engine 4 as that's my background. This was my first time doing any modeling, animation, or material work and that ended up taking most of the time. I've confirmed I have no artistic skill, but I was able to model a dollar sign from scratch so at least I understand the process now :) This took about 24 hours spread over a week.

 

Anyway I've been in the game industry for 10 years but this is actually my first game jam since college and the first one I ever made completely from scratch. So this was fun, and thanks to the organizers for getting this setup!

 

I'm going to write a bit more about the technical side of making a game jam game in UE4 next week, I'll add that here when I've written it for future reference. 

 

Share this post


Link to post
Share on other sites

Glad you joined the jam! I will try to play yours ASAP... just wrapping up my own project first. 

 

That is a nice dollar sign model!

Share this post


Link to post
Share on other sites

Welcome to the jam! So glad you could participate with such a long career, impressive!  I always learn a lot fromjamming. I look forward to your technical writeup, that's not my expertise. And for sure that dollar sign looks mint!

Share this post


Link to post
Share on other sites

This game feels really slick, and the concept is really interesting, though I feel like I need to read a strategy guide (or a book on finance) to become good at it. Somehow reminds me of dice wars, but I'm not at all sure if the comparison holds up at all when I dig deeper into this game.

Share this post


Link to post
Share on other sites

Okay I finished making a new website and I wrote up some thoughts on the technical bits of doing game jam games in UE4 on my blog. I'll repost it here for convenience:

 

As I'm just starting to get into Indie development after 12 years of AAA game development, I wanted to enter a Game Jam as quickly as possible. Luckily, The Idle Thumbs community organizes a regular game jam called Wizard Jam that was absolutely perfect for me. The rules and timeframe are pretty relaxed so I decided I wanted to spend about 3 days building a game in UE4, using as many of my own assets as possible. So, I decided to learn lighting, modeling, and animation and build a simple game. The end result is General Interest, a minimal RTS where you command an army of interest-earning securities to take over the market/colored terrain rectangle.

The game is nothing special, but I wanted to write up some of my thoughts on the process of making something for a Game Jam as it may help others. There are other resources for this including the UE Wiki and tons of video tutorials. Because I'm a programmer with limited art skills, most of this advice assumes some basic experience with coding in UE4. Anyway here we go!

Getting Started

When you're making a game for a jam you probably want the smallest amount of content and code possible, so when you make your project you need to be careful. I started with a Top Down C++ project because I was making an RTS, selected PC as target, and brought in starter content. After my project built I jumped back into the editor and started pruning things. First, you may want to delete much of the starter content. I ended up deleting everything other than the materials, but don't delete things you may want to use. Also at this point I went into the Edit->Plugins menu and disabled lots of plugins. The default setup includes things like VR that you won't want in your project (unless it's a VR game of course). This would also be a good time to enable any marketplace content you're going to use, I didn't end up using any for this project. Finally, make sure you go to the Edit->Project Settings page and fill in your project description details, as you're about to generate some code classes

The next step is to build out the framework for your game. As I am a programmer by trade I wanted some new base classes and structure, that I would then iterate on via blueprint subclasses. The easiest way to do this is to do File->New C++ Class. In my case I wanted a new Game Instance (which is a class that sticks around between levels so can be used for things like high score saving), but depending on your template you may need a new Player Controller or Character as well. Once you have your c++ base classes you should then make blueprint subclasses of all of them, which is where you will do the rapid iteration. Just making the classes isn't enough, you'll have to tell the project to actually use your new classes from the Maps and Modes page of project settings, or on a specific map using world settings. I had a title screen and several RTS maps so I ended up making two separate game mode blueprints.

Making Your Game

Okay, we have the classes, now to actually add stuff to them! What to do next depends on your game, but because I was making an RTS I decided to implement the hp/money generation in c++, the input handling half in both, and all of the visual/audio entirely in blueprints. So my first task was to make a Data Table base class:

USTRUCT(BlueprintType)
struct FInvestmentStats : public FTableRowBase
{
    GENERATED_BODY()
    /** Max/starting HP for this investment */
    UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Stats)
    float MaximumHP;
};

I added a bunch of stats here and made a separate structure for the terrain info. The next thing I started doing was adding a bunch of BP events and public variables to my Character subclass:

    /** Targeted character to interact with */
    UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Control)
    AGeneralInterestCharacter* TargetedCharacter;

    /** Blueprint callback when hovered over */
    UFUNCTION(BlueprintImplementableEvent)
    void OnSetHovered(bool bInIsHovered);

Once I was done building out the C++ framework I then went back to the editor and started using it. I made Data Tables for my investment and terrain stats and filled them out with bad guesses at fun values. I then went into my Character BP subclass and started implementing all of my events. I then spent 2 days iterating by adding new events, implementing them, tweaking values, etc. How to build your game depends heavily on your game genre and your personal skill set, so look for more general UE4 information online if you need help with this part. There's one more step:

Releasing Your Game

Okay, you're happy with how your game works when you playtest in the editor, the final step is to get into an actually releasable state. This can be a bit confusing, so let's go through the steps:

  1. Test your game using Launch: If you use the Launch drop down and select your PC it will cook and create an almost-final version of your game. Things like cheats will still work, so you can look for and address any issues that may pop up. Notably it defaults to full screen.
  2. Change your cook settings: By default if you don't set anything up it will cook all of the content in your game, but that might pull in things you don't want and bloat your download. The easiest way to do this is to modify the List Of Maps to Include in the Packaging Settings. For a game jam game that's probably enough.
  3. Prune your cook content: I also turning on Exclude Editor Content When Cooking and Create Compressed Cooked Packages. This will break any uses of editor content like the built in sounds, though, so you may need to clone a few assets.
  4. Enable Shipping: If you don't want your users to have access to cheats, enable For Distribution. This isn't a huge deal for game jam games but it will also make your download smaller.
  5. Make a packaged build: To do this go to File->PackageProject->Platform. This will ask you where to save it, then it will take a few minutes to build and create a final packaged build.
  6. Test your packaged build: When you package it creates a Platform folder, and inside that a GameName.exe. This is a tiny executable that just launches your real one, which is in GameName/Binaries. Anyway launch GameName.exe and if it works you're good to go.
  7. Create a distribution package: This depends on where you are distributing, for Itch.io you want to make a Zip file called GameNamePlatform.zip, containing all of the contents of the Platform folder. You want GameName.exe to be in the topmost directory. You can safely delete the manifest, but you need everything else,
  8. Distribute it: For Wizard Jam this was dead simple because it integrates right into Itch. So I made an Itch account and set up my game page where I could upload my zip file. You want it to be "no payment", and make sure to select the right platform for your zip file. If you do this properly it will work from both the itch website and the desktop client.

And there you go! That's an overview of how I built my game jam project in UE4, skipping over all the hard-to-describe actually-making-the-game bits. If you have any questions or comments you can either email me or leave one here. Good luck with your game jamming!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this