Monday, December 7, 2015

Kback(ish)

Figured I'd pop in here for a quick update.  Fall quarter is about done so Mega-Risk production should resume in a few days.  In the mean time, I forgot to post about one very important development:  AI works.  I forget how it was made to work, but it works.  Also, since both Conrad(?) and I know C++, I figured we'd start on THE REAL VERSION.

If I haven't said so before, this whole thing has been a prototype.  With a team of seasoned professionals who know UE4 inside-out and spend all day working, all the work cataloged in this blog probably would have taken a month or less.  Unfortunately, we are none of these things and this has taken about a year.

THE REAL VERSION will use both C++ and Blueprints and will be released to people to download and put on their computers and use.  I think I'll start that up after fall quarter ends.  I know multiplayer never got prototyped but it is supposed to be done in code so I'm hoping our C++ will make it work.

Sunday, November 8, 2015

STATUS UPDATE

I don't have any actual progress to show off.  Nothing has happened in the past few weeks.  Conrad has been trying out a bunch of new ideas and has started planning out another game with Ethan (if you don't know who that is he knows lots about programming but doesn't actively work on Mega-Risk).

Meanwhile, I have had school things.  Homework has gotten more intense and on top of that I have to compile a portfolio for a college interview comign up at the end of the month.

So, basically, I don't see any new stuffage being done for M-R anytime soon.  I'll keep this thing updated if an unexpected development develops.

Sunday, October 18, 2015

Hi

Hello, all you nonexistant people!  It's time for another post!

Basically all that's gotten done in the way of central Mega-Risk development is that I've gotten 2/3 Castle Cards working.  Reinforcements, check.  General, check.  Marshal, not check.  Why not marshal?  Well, to put it simply, it's nearly untestable right now.

The way marshal works is that a defending player can play the card during a single battle to increase his highest die roll by one.  So if he rolled a 4 and a 6, the 6 would become an otherwise-impossible 7 and nothing would happen to the 4.
In order to do this, I'd have to give the defender a chance to play a marshal if he get's invaded.  As it stands, there's no way for the player's territories to be invaded.  The AI is broken to the point of unusable and multiplayer is in a similar state.  So, I'll hold off on developing that until one of those things starts working.

P.S.  I mentioned that this was the only thing that's happened in central development.  Conrad has conjured up a system that can basically generate random maps with landmasses containing multiple territories.  It's still rough around the edges but it's very promising.  Hopefully we'll see a fully-fledged random map generator in the future?

NEXT TIME: Probably AI or Multiplayer.  I mean it this time, too.  If you head over to the Trello page you'll see those are basically the only major things left to do unless I decide to set up game stats.

Thursday, September 24, 2015

On the Matter of Inactivity

To those of you who might be reading this blog and are expecting a new post soon, this is it.  This is the post.  It's a post to tell you that there will be no post, which doesn't make any sense but it exists anyway, questioning all laws of logic.

Anyway, school started up again and on top of that the I'll be taking the SATs next week.  This means that cramming is a very real thing that actually happens.  On top of that, the entire family is currently helping Dad recover from a back/hip injury.
All that stuff adds up to a lot of time not being spent on Mega-Risk.  I should be back in comission in another week or so, maybe next Sunday, but until then Conrad will probably be the main guy working on stuff.

However, I won't leave you with zero status updates.  Stuff has been worked on since the start of the month.  Specifically, I've been trying to get Control Territories/Continents (my term for Pirate Islands and RGB Islands) to exist and Conrad has been trying to find a way to make that magical thing known as multiplayer to work.  The two of us have also been taking turns trying to get the AI to function properly.

So at least the last few weeks haven't been a total loss.

Friday, September 4, 2015

NEW MAP (Mega-Risk v.Proto_0.0.4)

My god, making the full Mega-Risk map took forever.  Two straight days of cutting up the map meshes, inserting all of the territories, manually creating all of the borders, and setting up the adjacents for every one of the 200+ territories in the map.

But now the full map is done.

I also managed to add continents and those UI tweaks I talked about in the last post.  Also, Conrad made a bunch of seriously amazing looking sea-lines.  Now all that's left is some sort of playability in the form of AI or Multiplayer.  Conrad's made some headway in the MP department so I'm not sure what will be done first.
Once one of those is done, I suppose it'll be time to upload a downloadable release for testing purposes before we dive into all the Mega-Risky goodness.

Here, have some screenies:





Since a substantial amount of working thigns have been added, I suppose it's time for a new pseudo-release.

Mega-Risk v.Proto_0.0.4
Changelog:
- Made new 'Proto2' map
- Added Continents
- Added Sea Lines
- Added Fortresses
- Tweaked Whirlpool texture to make it more realistic
- UI adjustments
- A couple more bug fixes

Saturday, August 29, 2015

Territory Cards

After the greatest headache since Invasion, there are now Territory Cards in Mega-Risk.  Everything but the troop scaling is in there, mainly because I haven't taken the time to find out what formula Risk uses for that thing.  Everything else works, though.

I'm hoping to get a full playable 'release' (with possibility of actual downloadable release) out in the next couple of weeks.  On the todo list for that to happen is:

  • Finish the AI (if we can't get multiplayer working we should at least finish that)
  • Make some UI adjustments to make everything look nicer
  • Fix that months-old minor Invasion bug where the virtual dice won't roll twice. (?)
  • Sea-Lines
  • More territories and continents.
So, basically, a bunch of easy stuff and the AI. :D
I'm really looking forward to getting all this base stuff finally done and out of the way so we can finally do what UE4 was made to do and make everything look PRETTYFUL.


Screenies/GIFs probably coming later.

Monday, August 3, 2015

Turns and Disaster Cards(Mega-Risk v.Proto_0.0.3)

Some more stuff happened last month!  After grappling on and off with the problem known as multiplayer, I realized that I don't necessarily need to get that done right away.
This epiphany led me to question the nature of the entire project.  I eventually found myself slightly revamping THE ENTIRE INFRASTRUCTURE (again) after I found out that instances (the thing we had been using to handle UI and a bunch of other stuff) are new, poorly documented, and didn't do what I wanted them to do.  So, I deleted ours and put all the code it contained in other places, which fixed a buttload of problems.

A few minor bugfixes later, and I was ready to implement the myserious things known as TURNS.  As of right now, I've put in the reinforcement and attack stages of Risk as well as the first fully Mega-Risk concept so far: DISASTER CARDS.

For those of you who've never played the original Mega-Risk, disaster cards are in-game events that happen every so often in-between turns.  They grab a random territory and do something to make the owner (an sometimes all adjacent territory's owners) suffer.  They could be anything from a lightning storm that halves the troop count to a deadly doomsday device that reduces everyone's troop count to 1.

I've got those working now.

So, all in all, the project is coming aloong nicely and, should the bug gods be kind, may be in a "playable" state before school starts!

OH, and I suppose this warrents a new 'release'.  It's time for:

Mega-Risk v.Proto_0.0.3
Changelog:
- Removed GameInstance
- Added turn-locked territory selection
- Added reinforcement stage
 - When a territory is selected, its troop count goes up by one.
- Added Disaster Cards/Events(I like that name better)
 - Happen at the end of a round
 - Select a random territory and affect its troop count in some way
- Added Top Bar
 - Displays a variety of info including player's team, total troops, and other stuff
 - Holds constantly-available buttons such as End Turn and In-Game Menu
- Added post-invasion troop movement
 - Widget spawns after victory that lets players move a number of troops from the attacker to attacking territory.

Hmm, looking at that changelog it appears I added some stuff I didn't mention.  Oh well.

I was going to post some GIFs but my screen recorder is giving me some problems.  Once it's fixed I'll update this post.


Monday, July 13, 2015

Multiplayer.

As of right now, multiplayer is the bane of my existance.  It is necessary for moving the project forward, yet it refuses to work.  On the plus side, I am able to host a game and have other clients connect to it (under very specific circumstances).
That's where the working part ends.  Everything that follows joining a game is ENTIRELY BROKEN.  The amount of problems led me to make a Bugs list on the Trello Page.

Fortunately, our magic code man Ethan will be BACK IN BUSINESS after his six-month computer hiatus ends on Wednesday.  Maybe he will have a magical solution to this.

Sunday, June 14, 2015

I'M BACK. (Mega-Risk v.Proto_0.0.2)

It's basically summer so I can now at least try to keep this thing updated regularly.  There has been some progress on Mega-Risk since I last made an update over a month ago.  Namely, I implemented teams (pretty much).  All players (or, since there is no multiplayer, the player) are only able to interact with territories of their color-faction.
I've made a GIF showing off theese thigns.  I should do this from now on. BEHOLD, MY GIF-MAKING POWERS:


Now that I've gotten to a point where all of the features work, I think it's time for a new version. Thus, I dub the current stage of Mega-Risk:
Mega-Risk v.Proto_0.0.2
Changelog:
- Revamped GameMode
- Added foliage to map
- Added teams
  - Territories all are assigned to a team, which determines their color.
  - Players are also all on teams.
  - Players can onl interace with territories that belong to them, unless they're         invading, in which case they can also interact with territories adjacent to the       attacking territory.
- Added Main Menu
  - "Play SP" button enters main map
  - "Settings" button enters currently functionless settings menu
  - "Quit" button closes game
-Updated to Unreal 4.8



Next up: pseudo-turns (I say pseudo because they won't be real turns until multiplayer works).

Sunday, May 3, 2015

Invasion (mostly) works!

Yes, you read that right.  I've finally gotten Invasion, the cornerstone mechanic of any Risk game, to a somewhat working state.  I say somewhat because, basically, I can't get the game to compare more than one set of dice per roll.

To put this into perspective, say the game rolls [6, 4, 2] for the attacker and [6, 1] for the defender.  Because of the bug, the game will compare the two highest rolls (the 6s) but afterwards it won't move on to compare the second highest numbers (the 4 and the 1).  It will instead compare the two highest numbers twice.  This causes nearly all invasions to bring both the defender and attacker's troop counts down into the single digits most every time.

I'd probably have been able to fix this over the past couple days, but I've been trying and failing to reinstall Windows onto my new SSD and I'm the sort of person who is unable to focus on anything once he comes across a difficult problem.

Hopefully I can get this thing to work soon so I can go back to Mega-Risk dev.

Sunday, April 19, 2015

Multiplayer Thigns

Well, I tried to make it a weekly thing.  And I failed.  And I'm sorry.

Not much has happened over past few weeks.  After I found that the storage site we were using would only let us store 1GB of stuff on it I told Conrad that I would look for an alternative.  I am now using the recommended Perforce client and running a server myself, but Conrad and I are getting the same timeout problem we were with Subversion.  So there's that. :/

On the actual dev side of things, I've been figuring out how to make multiplayer work because, for the most part, all of the remaining basic features will requre some sort of multiplayer functionality to work (turns, disaster cards[which happen in between turns], and some UI stuff).  However, I found that our entire character setup is basically wrong.  So I had to remake everything.  Then I came across problem.  As of today, I have posted my problem on UE4's AnswerHub and am waiting a reply.

So that is the state of the game.  Hopefully the next time I make an update I'll have everything in a more working state.

Friday, April 3, 2015

A POST.

Spring break is nearly over and this is the first post during that time. :/

Although not as much got done as I had hoped, some very important stuff happened:
  1. Unreal went free, allowing Conrad to go full-on dev.
  2. We (kind of) got a form of source control was set up, and although there is a problem with it now, it will allow us to practically work on the same project all at once.
  3. I got invasion practically done.  All that is left is to fix a bug or two.
Conrad has been great adding in details that I've been too busy with the main stuff to do.  He's added in better camera controls, foliage, a main menu, and some music (although that was mainly lost in the great source control calamity).
I, meanwhile, have been figuring out invasion code and trying to get source control working.  Speaking of which, I should explain why Mega-Risk didn't get a Minecraft-sized update these past couple of weeks.  It happened in an event I like to call:

THE GREAT SOURCE CONTROL CALAMITY
About a week after the last blog post, Conrad and I had finally got source control working via an online repository hosting site.  I had my project hooked up to it and all of my files were in there.  Conrad had hooked his project up as well.
Conrad had more changes, but the changes I had made were more complex, so instead of either of us merging the source control files with our (and thus wiping out all of our progress), we decided that Conrad would copy everything I had done into his project and then upload his files, which I would download.  I don't remember why, but Conrad ended up with a broken territory class.  We tried fixing the problem in a variety of ways, but they all made everything worse until Conrad's project was completely broken and he had lost a lot of his work, including the music setup.
Fortunately, Conrad had uploaded some of his entirely new files to source control and I had added them to my project.  Also, he had taked screenshots of some of his stuff and has been able to rework some of it from those.  Nevertheless, it took us at least five days to get to a point similar to before the calamity.

But despite that, I'm proud to say that I should have invasion fully functional by the end of spring break on Tuesday and I can announce the next version.

I might have made more posts since two weeks ago, but at the end of any one day it never felt like we got any concrete set of stuff added in and I didn't want to say something like "we mostly got this and that done, but it's not done yet".  

I realize I'm doing this here with invasion, but a number of things led to this today, including us having an actual meeting where we discussed things (:O), Conrad and I finally getting our projects synced and ready to source control again (once I fix an issue with logging in to the server), and Hank DLing Unreal (woo!).

I HOPE TO BE BACK SOON.

Thursday, March 19, 2015

kback

THE FINALS ARE OVER.  SPRING BREAK HAS BEGUN.  TWO WEEKS OF GOOD THIGNS.

At(or near) the top of that list of thigns is Mega-Risk dev.  I've got plenty of time to work on this thing and start to morph it into something that looks less like a couple of morons flopping about with high-end software and more like an actual game.

Among planned features to be added over the next two weeks are(in no particular order):
  • Full-fledged, dice-based invasion
  • Multiplayer
  • Ownership of territories by players
  • More UI happiness
  • Events(disaster cards)?
  • Turns ???????
Invasion comes first, though.  I've got Spencer's dice rolling program sitting on my computer, waiting to be rewritten in C++.  Once I find out how to access code functions from UE4 blueprints, I'll hook the dice up to the invasion thing I have and then there will be a party or something.
After that's done IDK.

Also, since it's late and I couldn't start code conversion but I wanted to do something, I made a Trello board.  The board is public so anyone can see it even if they don't have a Trello account.  I'll try to keep that thing updated.
TRELLO LINK.

I'll be back soon with good, happy update stuff. :D

Monday, March 9, 2015

Of invasion and source control

We finally got a substantial amount of stuff added to make another update post!

As you may or may not know, Unreal Engine 4 recently went free.  Because of that, Conrad is now on the active dev team! ^_^
Over the last weekend, the two of us got two things done:
  1. A basic invasion feature (mainly me)
  2. Camera rotation and zooming (mainly Conrad)
Also, after many frustrating hours of Googling, I got source control to work.  For those of you who don't know, that's basically a way of sharing files/projects between multiple people for collaboration purposes.

As of this moment, invasion simply consists of selecting a territory, hitting the 'Invasion' button, and selecting another territory.  That second territory will have its troop count reduced by ten.  This week, I hope to make it so that continents can only attack adjacent territories and also (maybe) implement Spencer's dice rolling program so that we can have true invasion. :D
I FORGOT THAT FINALS ARE NEXT WEEK.  I'M AFRAID THERE WON'T BE MUCH DEV TIME UNTIL WED. 18TH, WHEN FINALS ARE DONE.

Here are a couple of screenshots highlighting the stuff we did.













A: Zoomed in on the seahorse.  Notice the 'Invade' button.












B: Zoomed out and invaded the tail.



Monday, February 23, 2015

PROTOTYPE - Update 4 (Mega-Risk v.Proto_0.0.1)

Welp, I did it.  I added the ability to select territories in-game and then edit their properties with using a set of buttons.  I also made all the continents into territories and put them on the map.
Implementing this wasn't nearly as tricky as I thought it would be.  I simply made it so that when the player clicks on a territory (which can be toggled through a built-in event), any existing UI is deleted and new UI is created.  This is to prevent multiple UIs from popping up.

The UI itself consists of a string of text displaying the name of the territory and a set of buttons that directly alter either the troop count or the color of the territory.

The map.  Finished and covered in colored territories.











Here, I've changed a few things around in-game.  All of the settings are reverted to their original state when the game closes.











I don't expect to be able to get anything of substance done anytime soon after this.  All the easy stuff is done and the next task at hand is implementing invasion, which also involves figuring out how to make each territory know all of its adjacent territories.

However, it appears that a checkpoint of sorts as been reached.  We have a 3D map of all the continents.  They all have been divided into territories and have a couple of fundamental properties that can be altered.
Therefore, I'm going to go ahead and dub this:

Mega-Risk v.Proto_0.0.1 (we have a cool development name now woo!)
Changelog:
- Initial version
- Added 3D map
- Added Continent-Territories
- Added Territory selection
- Added Territory buttons

Sunday, February 22, 2015

PROTOTYPE - Day ??? (Update 3)

NOT DEAD YET.
I finally was able to take a Saturday off and get some stuff done! :D
Using vertex-snap magic, I was able to fix my earlier problem and then some.  The board (or at least the part I'm testing) now displays a numeric troop value above the territory and has a colored overlay which I'm using in place of a border.  This overlay will later represent ownership.
I also made it so that Unreal recognizes when the cursor is hovering over a territory.  I'll use this to implement territory selection, which I'm hoping to do tomorrow.
BTW, I'm initially just going to use continents as territories since I haven't figured out the territory-continent relations yet.

Now for screenshots:















Here's my test region in-editor.  The actual texture of the land is a dark, metallic grey (as you can see in previous screenshots); the colors are just overlays which double as basically giant buttons that can be used to select the territories.















"In-game" (well, in-editor game mode).  You can't see the cursor here, but it's hovering over the purple territory.  All territories turn white when they're hovered over.

TECHNICAL STUFF:
Each landmass is currently broken into: the base mesh, a 'collision' plane, and a blueprint for each territory.
- The base mesh has its origin at the center of map even though the meshes are in different places.  Because of this, I can drag the map meshes into Unreal and set their locations to 0.  This snaps the landmasses to their exact locations.
- The 'collision' meshes are basically placeholders for the actual territory blueprints.  What I do is take the top face of each landmass and split it along the territory borders into various parts.  I then make each of these parts, each of which is now a good representation of each continent, a separate object.  I can then import them into Unreal.  I use vertex snapping to line up the collision planes to the meshes themselves.  It's all very manual but it works pretty well for now.  Later on I'll see if I can revamp this system to use sockets and make it all more automatic.
-The territory blueprints take some more explaining to do.  In fact, I think I'll make an entire other post to explain them.

P.S. Since I'm unable to create enough content most days to warrant full update posts, I'm going to number these things by updates instead of days.

Saturday, February 14, 2015

I got stuck.

Just as the title says, I've encountered a problem.
Basically, I can't find a good way to make a template that every territory/continent could be used for.  That's the gist of it, but the full situation is a little more complicated.

So, what I'm trying to do is make a simple class in Unreal's Blueprints that, for the time, does one simple task: it grabs uses a variable that holds a static mesh and displays the troop count using a text renderer, which is attached to a socket (a fixed point relative to the mesh) called 'Text'.
Now that doesn't seem very hard, but I have three main problems:
  1. Sockets are components of meshes and each mesh could have multiple sockets, all with different names.
  2. Typically, when attaching something to a socket, a constant reference to a mesh is used, not a variable that could hold any number of meshes.  This is probably screwing around with the sockets somehow, but I don't know how because...
  3. I have very little experience with Blueprints and the Unreal API so I'm not quite sure what I can do to fix this.
I'll probably post my problem on the Unreal AnswerHub tomorrow but I thought I'd share with you what I'm doing.

Once I get this fixed it shouldn't be too hard to render a border around these meshes and add the ability to select each of them and do things like adjust troop count or attack an adjacent territory.

Monday, February 9, 2015

:I

NO UPDATE SUNDAY.  MUCH MATH.  TOO BUSY. VERY SORRY.

Also, if anyone reading this has any suggestions on how I can split the map into segments and then assign a numeric (army) value to each of those segments, please tell.

Will post again when I do something substantial.  Might not be for a couple of days.

Sunday, February 8, 2015

PROTOTYPE - Day 2

Didn't have much time to work on the prototype today.  However, I did, after more trial and error than there should've been, manage to add the ability to pan around the map.
Basically, instead of setting up a big ol' system where the camera itself moves around when you use WASD, I just stuck the default third-person character on a plane under the map and made it so that the camera was much farther away from the actual character.  This should have taken fifteen or so minutes, but I had started the prototype using the wrong template and had to port it all over to another one.

Some time in the next three days I hope to divide the map into territories and make them each display their own army values.

Saturday, February 7, 2015

PROTOTYPE - Day 1

IT HAS BEGUN.  I spent about two hours working on what you see below. There is no play functionality or anything, just that map floating in limbo.  Still, it took me a while to get everything to render nicely.
Tomorrow I hope to add a camera to pan around the map.  I'll talk about that more in depth when I finish it.
The map.  Yes, the peanut is made of gold.

Intro/Welcome

Hello everyone!  As you can see, I, Shmid, have created a blog with which updates can be kept track of!  I'm still figuring this thing out but I'm fairly certain I can add co-authors to a blog so we can all post our own stuff.
If/when you do post, please add your name to the labels.  Make sure to keep the case and spelling consistent.