00:00
00:00
MSGhero
Free time is nice time.

Nick @MSGhero

Age 30, Male

Somewhere in the North

Joined on 12/15/10

Level:
17
Exp Points:
2,848 / 3,210
Exp Rank:
19,854
Vote Power:
5.85 votes
Rank:
Police Sergeant
Global Rank:
6,515
Blams:
456
Saves:
937
B/P Bonus:
12%
Whistle:
Normal
Trophies:
6
Medals:
661
Supporter:
11y 4m 23d
Gear:
3

MSGhero's News

Posted by MSGhero - February 2nd, 2014


*TECHNICAL POST YOU HAVE BEEN WARNED*


On controlling the flow of Jugg 2:

In order to control the flow of the game without hardcoding behaviors like I did last time, I made the Juggernaut 2 "event-driven."***  When something happens, it sends out a message, and anyone listening to that message gets notified.  For instance, when I enter Hart (the first city), "enter;hart" gets sent around.  The first part is the main event and the part after the semicolon is additional data.  Anyone subscribing to an "enter" event would be sent this, and they have different behaviors based on what the latter data is.  Prefix and Suffix.

Maybe when you enter Hart, a notification comes up.  Maybe when you enter the next city, a different notification comes up.  The events that would get sent out would be "enter;hart" and then "enter;fen1".  If the suffix is "hart", then the first notification pops up.  If the suffix is "fen1", then the second one pops up.  This part is hardcoded, but it has to be--it's about the least amount of hardcoding I have to do.

But when you enter Hart again, "enter;hart" gets sent around again.  To avoid having the same notification pop up again (unless I want it to), I have a list of "excluded" suffixes.  The first time "enter;hart" comes around, it sends the event and then adds "hart" to the "enter" event's list of excluded suffixes.  So the next time that event gets sent out, it checks if the suffix is being excluded for that event; if so, it gets ignored.  This is on a per-class basis, one class might only care about the event once while another might be tracking how many times it happens.


Naturally, this got extended into more functionality.  I want to fade the screen in and out and someone to disappear after a bit of dialogue ends?  Each dialogue object has an optional callback that can be sent out when that dialogue shows up. I send out a "foi" (fade out in) and the id of the person to disappear and bam!  Unlocking a new hero after a cutscene, done.  Tracking how many enemies you've beaten, easy.  Talking to certain NPCs doesn't count for the medals, excluded when the game starts.

For talking to NPCs, a "talkto" plus the NPC id gets sent.  But also included is the current dialogue that the NPC is saying, e.g. "talkto;32:1" for the sake of adding more information without requiring a third string.  I delimit when necessary to get all the info I need.


It works and it's elegant.  What else could you possibly want?



*** I don't use native events because who the fuck would use native events for so many things?  I register the event by associating a prefix with a class that has an interface-given function to handle any callbacks with that prefix.  It's probably similar to the internals of the flash event system, but I'm passing around 2 strings rather than a whole event object.


Posted by MSGhero - January 9th, 2014


Back to the grind.  My second monitor has increased my productivity thrice-fold.  And my roommates have decreased my productivity by an unknown and changing amount.


     Juggernaut 2 is in that weird place where I have lots to do but can't do any of it.  While Jordan isn't available, I might start polishing the game, like making npcs move around to liven up the city.  I've been polishing some aspects while bug fixing, so things like status effects look fairly decent already.  Reading gamasutra articles every day helps with almost every aspect of the game, I reccommend doing so.

instagibbed enemy

     It seems like status effects will be a much bigger deal in this game than the previous.  Some games it feels like you can man up while afflicted and basically ignore the status effect, but here you're either hemorrhaging hp, stunned, missing every other attack, or dead.  The status curing items will be much more important to have in stock.  Hopefully you can make it through a map without having to go back or dying a lot.

There could be some padding between the image and text in the editor, just saying.  And I think I broke the editor with my glorious line breaks.  With great style comes great responsibility.


3611941_138932608623_game.png

     It would also be a decent time to work on the other projects I'm immersed in that are more or less active.  For the open-source accidental Concerned Joe clone with temperature, I want being cold to make you hallucinate.  Maybe the lower your temperature gets, the real level starts to disappear and a false level shows itself.  A small addition to my level editor will make that possible.

     I'm a bit limited with the CC0 licensed art, but it should be enough to get something good done.  Since Inverness is actually a castle in Scotland (mentioned in MacBeth), I might make the false level some kind of castle.  Not sure how enemies fit in--how opaque an enemy has to be before it'll actually kill you or if they're always there.


     Fighting game is a bit weird, as I kinda can't do anything until I get all of the art for each character.  The sprites are fairly rough right now, and there will probably be more changes in the future, so hard-coding data for each frame is one of the last things I want to do.  Every small change would mean another hour of me retyping everything.  Having the artist manage the frame data in a way that the game can directly read will probably not happen, so more awkward coding to come there.


     Uni has started.  My schedule is fairly light, except I'm tutoring and doing research, so it's not light at all.  With job interviews (I hope) and actually cooking meals, it'll be much different that previous semesters.  In other words, my stress levels in school will never decrease, no matter how many classes I'm taking.


     I lied about Jugg 2 taking 2-3 months.  We're adding a ton more stuff than I expected (with a few parts I haven't even seen [or heard] yet), and I sometimes rewrite older code to be more easily used later on.  It'll come out sometime this year, don't worry.  Worry a slight bit.

Shut up, I know it's not midnight yet.


Posted by MSGhero - December 7th, 2013


Ironically, I'm getting more done with Jugg 2 as finals approach.  Earlier today, I had another epiphany about a significantly easier way to do what I was having problems with.  Just one line extra.  I've said that idk how many times now, "With this one line, I can save 50."  I'm hovering under 10,000 lines, so I'd probably be over otherwise.  I think I slowed down because of some bugs that weren't easily solvable.  I tend to pigeonhole and only focus on fixing things rather than continuing my progress.  But I read a nice article today by HobbyGameDev (who interestingly goes to my uni) about productivity traps.  That put the minor bugs into perspective. Then I crapped out that epiphany.

3611941_138639492032_Pigeonhole.jpg

I love WYSIWYG editors.  So much.  Thank you ngstaff.  This is my favorite part of the site now.  I mean, look at this line break.


Five finals, one for each day of the week.  I was worried about one class, but somehow I'm above the course average.  The other classes should be alright, one I'm concerned about, but the rest are easy/I get to use a crib sheet.  I never make one for tests to make taking the test more fun, but I don't dick around with exams.


3611941_138639491971_HearthstoneLogo.png

To add to my distractions, I just got into Hearthstone's beta. I like the game, but I don't like how people have better cards than I do.  People kill everything on my side of the board with some rare card, and I have to level up 3 more times to get that card.  Once I get that, people start pulling legendaries on me.  I guess they paid money for booster packs, but I made an oath that I would never pay for certain in-game content--usually cosmetics and boosts.  This arose from when I quit MapleStory after having spent way too much money trying to be a slightly above-average damage dealer.  Those sites who say you can make money by doing surveys?  I did so many of those.  They aren't (entirely) scams, but it took me 3 months to get $150...which was all spent on that game.  I had to make a new email address for each offer (I think I made 80 unique emails), and I created dozens of VirtualBox partitions for the download offers. 

Yes, I was obsessed.


Time spent:

  • Game dev: more
  • Dota 2: same
  • Hearthstone: way more
  • Finals: fuck me

Posted by MSGhero - December 2nd, 2013


Progress for Juggernaut 2 has slowed down a LOT. The game is playable, so now it's details, polish, and menus left to do. I can't really mow my way through those things like the larger systems, so that's why it's taking a while. Rewriting most of the larger systems to make adding content easier might have stalled development as well. Maybe. Yeah, I know I have to add text info to the menus, make particles show up during someone's attack, make battle animations not look like crap, add doors to houses: the details, the dull.

On the "How far I think I am" scale, I'm 80% done. On the "How far I actually am" scale, I'm maybe 65-70% done. Moving around the overworld and talking to npcs are more than half the game, and those took a week to do. Quests are pretty big, and they're taking forever. Skipping cutscenes is minor, and it's looking like that'll take forever. And there's crafting which I haven't touched yet.

Holy shit I just realized exams are next week, not the week after. That was on my mind before, but fml even more now. That's less dev-cember, less dota2, less fun, more study. Study time is not fun time.

Two weeks ago, I had ~8400 lines of code without the data files. Now 9800. Some of that is hardcoded animation stuff, the rest is the code representation of my free time.

Midnight Musings #7


Posted by MSGhero - November 14th, 2013


MSGHero.

No, it's not "Message hero."
No, I didn't misspell Metal Gear Solid.
No, I'm not affiliated with Madison Square Garden.

Almost 4 years ago, I was 2cool4u. It was original enough that I didn't run into many conflicts, for which I used 2c2bt (too cool to be true). If you haven't realized yet, I was a pretty cool kid and needed the internet to know. For Christmas I got Call of Duty MW2. Plot interests me more than mindlessly shooting at other people, so I played through the campaign first. I wasn't terrible at shooting despite it being my first shooter, so I decided to sign up for Playstation Network to access the multiplayer.

But PSN usernames can't start with a number. I was distraught, as all of my username alternatives started with a number. I figured that having a one-word name would sound pretty cool as well, so I tried "Valor." Taken. "Perseverance." Taken. "Destroyer." Taken along with about 10 other names. "Hero." Taken. "Hero16." Taken.

At this point, I stopped and stared at the screen. None of the words I could think of were available, and it seemed like following them with number permutations wouldn't help either. However, the break made me realize that I was hungry. "I could go for some Chinese right now," I said. Thirty seconds passed. Without a thought in my mind, I instinctively typed the name of that magical, salty chemical. Sodium 2-Aminopentanedioate. C5H8NO4Na. Monosodium glutamate. MSG.

A year later, when signing up for Newgrounds, Mark Zuckerberg told me to drop the "16." I would have done the same for my twitter, but MESSAGE hero, aka Mr. Worthless Twitter Account wasting my electrons, had already laid claim to the name. No matter, for though he may have acquired the account first, I will have the prestige that follows the name.

What's in a name?


Posted by MSGhero - November 3rd, 2013


or: Time spent after watching The Mentalist and having a bad team in Dota 2.

Friends (yes I have a nonzero number of them)
I forgot how much fun it is to hang out with people other than my roommates. We had a few people stay the weekend, and we had a great time. We went to a bakery that had PORK BUNS OMG and other delicious treats. Also they got drunk. I don't drink--the smell of alcohol gives me a headache--and I'm glad now. The stuff smelled like a sharpie. They were drinking cheap, knockoff sharpie ink. It was hilarious, especially a few spit-takes when they tried to drink it straight. They basically forced one sober guy to leave for being too sober, but they let me stay cuz I'm chill about everything (also it's my room). One guy had an epiphany about his life, and we had been trying for 3 months to get him to see, so this sharpie is something strong. I hadn't seen a few of these guys in a while, so it was nice to catch up.

Fuck uni
Thanks to some fine print that wasn't actually provided to me, I have 12 less credits to take in order to graduate! So I'm back on track for 4 years, unless I fail something. I say that because in one class I'm not doing very hot. I understand the material and people come to me when they need help, but the homework. Homework is ~60% of the grade overall, and there's little partial credit. It's a coding class, so they make a program to grade the files. If your program doesn't consistently give the correct answer for their test cases, you get -50 points right off the bat. They don't tell us what the test cases are, and, for some assignments, they don't give us anything to compare our answers to. Close only counts in not this class. The other computing classes I've been in will at least look at your code and award partial credit if you had the general idea going.

I always seem to pick the hardest teacher for a given class, maybe because that's the only section that I can sign up for. I'm a bit ahead, so I don't have class-picking priority over older students, and so I get what's left. I had to choose a 3 hour lab at either 8am thurs or 6pm fri since those were the only ones left. SIX TO NINE FRIGGIN POST MERIDIEM ON A FRIDAY. I don't have the greatest social life, but come on. Obviously I picked the 8am.

I have 4 classes left to take for my minor, but I can't sign up for them until a week after the majors sign up for the classes. Three more days till I can sign up, and they're all already full. So I have to get an override or overload or something because this system is dumb. Sigh...#collegeproblems

Game(s)
Progress has slowed a bit all around, but I think that's just my perception. I've been doing the battle system for jugg 2, and it takes longer to make than something simple like the overworld or cutscenes (lol simple). I have to work on other facets of the game while coding the battles to keep focus, usually a menu or something I've put off doing. I totally lied about finishing in 2-3 months btw.

Creating the cinematic-esque animations in battle is interesting. I have to use dynamic programming and hard-coding, the two things you're kinda supposed to avoid. Avoiding dynamic programming in a game that uses no cpu is stupid cuz it's so useful. Animations kinda have to be hard-coded, but I feel dirty. A certain attack has its animation sequence panned out, and the next attack doesn't share anything with the previous. Some attacks need multiple animations for multiple casters! I somehow made projectiles share the same code as moving within cutscenes, so it kinda worked out. Also, I had to make a particle generator which took 10 mins. Does that mean I'm good at coding or something?

Everything else is kinda on hold/when I feel like it/waiting on art. I'm kinda doing stuff for the heat transfer alien guy, but mainly doodling how the game should work. It's strange to see game design amid calculus problems.

Umm
Don Jon wasn't in theaters anymore. I saw Ender's Game. I'm gonna participate in at least one club next semester. I went to a tailgate before a football game. We won. I'm too scared to see what I look like with facial hair to participate in no-shave november. I just realized it's still before midnight.

Midnight Musings #6


Posted by MSGhero - October 19th, 2013


I've beaten Juggernaut 2 progress to death, so I'm gonna attempt to write about other things.

I considered calling this one a "Biweekly Bitching" since it seems I get motivation to write once every two weeks. "Midnight Musings" also has alliteration, so I'll keep it the same for now.

Uni
I have to sign up for classes pretty soon, and I have no clue what I have to take. There's major classes, required bs classes, and minor classes. I can't even sign up for minor classes until January, which is a dumb rule since they fill up fairly quickly during this time. This semester so far has taught me to take as many major and minor classes as possible to keep myself interested in the semester. Earth science is neat and all, but it doesn't compare to coding or doing calculus all day (shut up, it's fun for me).

And fuck lab classes, I have better things to do than waiting for water to evaporate and condense. The next computing class I have to take looks like it's "How computers work": binary, machine code (fml), assembly, hardware, and then C. I wish there was a game design minor rather than this general computer science one...I don't care about any of that stuff. I MIGHT be able to take Intro to AI which would be a lovely addition to my schedule. I can't tell because their website sucks. Teaching people how to code and they can't make a decent-looking website.

Art
I've never noticed how difficult it is to draw a hand until today. Apparently it's not 5 sausages that extend from where you stopped drawing the arm. And my perfectionist butt won't be satisfied until it looks like a photo. Maybe I'll try an art style more forgiving than realistic. I don't even know why I attempted that. Pixel art doesn't seem too interesting, plus I've seen all the pixel art I can handle for the next 6 months, and that's not even the updated version. Chibi? Anime? Maybe...maybe I should just draw more of anything and see what happens.

Coding
The tutorial game has become a normal game that I'm commenting the hell out of. My fantasy-fed mind turned a simple game concept into an actual game idea. It's about maintaining your body temperature as a cold-blooded alien. It seems like it could be fun. Since I'm currently taking heat transfer, I naturally added some real-life differential equations to the code (though I added assumptions so that they simplify to basic algebra) to make the temperature changes look nicer. Right now, it feels like Concerned Joe except you die if you run for too long also. I'm not sure how the alien should cool off when he's in a hot environment. I was thinking finding shade to cool off in, but fuck that, I need something simpler. Cold-blooded things don't sweat, so I can't use that. Hmm...

Food Truck Friday
Today I ate Croatian food for the first time. I got Čobanac and my friend got Ćevapi. Mine was good, but his looked better. I think I'm running out of things to talk about.

Oh yeah, the alien guy changes color based on how hot or cold he is. He's cold right now. He looks awful when hot, so there's some numbers to be tweaked still.

Midnight Musings #5


Posted by MSGhero - October 2nd, 2013


In Juggernaut I, the cutscene engine took me a solid 2-3 weeks to get fully implemented, with additional time spent later on fixing and adding things. This time, it took a 24 hour span to get almost the same functionality, and I had to rewrite the whole thing from scratch. There's a myriad of stuff I'll add to it, and that will take a good two hours to implement rather than a week. I'm at the point where I have to wait on Jordan to make art or write up more storyline in order to have anything productive to do. It's kinda crazy.

I'm comparing the two cutscene engines side by side, and there's not even a contest. Last time, I basically hard-coded all the behaviors and checked for a lot of unnecessary information. 506 vs 139 lines of code. The latter isn't completed yet, of course, but about 85% of the original functionality is there. Not gonna lie, after looking back at this, I sucked at coding when making the first game. I mean, I knew what I was doing, but I had no idea what I was doing. There are obfuscators which go through your code to make it unreadable for anyone who happens upon an illicit copy of the source code. It looks like I ran my sensible code through one of those to make it unreadable as hell. I took 150 lines of garbage and condensed it into 30. Vigorous coding, as with vigorous writing, is concise.

I cannot stress this enough: Organization is important. Confer the past 4-5 posts I've written if you need more proof.

Because of this beautiful coding, there have been days when I haven't touched a code editor. I'm stupidly far ahead of where I should be with Juggernaut 2, so there's more free time. I'll eventually make a graph of how stupidly far ahead I am. To be fair, the data points on the graph will be completely subjective and arbitrary, but that's fine as long as it looks nice and exaggerates the point I'm making.

After midterms this and next week, I'll have all the free time in the world. I'll work more on the tutorial game. I'll hopefully finish assassin's creed 3 and get 100% sync. I'll try out the photoshop stuff that Sab showed me like a month ago. I'll get the core hitbox/hit frame/whatever system into the fighting game. I'll rule the world. Nah, I probably won't have that much free time...

Ok, you got me. I'll probably end up playing dota2 every chance I get.

Midnight Musings #4


Posted by MSGhero - September 18th, 2013


I really don't want to go to sleep right now.

I started an as3 tutorial to fill the time when I don't have anything fun to code. The idea itself is pretty creative, using the github commits log and revision history to act as a step-by-step tutorial. Not sure where the project will go or how complicated it will be, but it might be useful to someone. And if it means answering less of the same damn questions in flash forum, then it will be worth it for us all.

While coding Juggernaut 2, I realized something important. I was coding with speed in mind, trying to optimize things and avoid slower but nifty features. And then I profiled the game. For those uninitiated in Scout, this shows that the game uses about 20% of the maximum allowable time to maintain 30 frames per second. But then I zoomed in and realized that the game itself uses 20% of that 20%, the rest is flash sitting around waiting for something to happen. The active bits of the game use 4% of the maximum, and I was trying to optimize shit? That's basically nothing. That IS nothing. I can do whatever I want, and that graph will hardly move. Even if the game suddenly started using 15 times more active frame time, it would still run smoothly. So those nifty and fancy but slow features? Doesn't even matter, I'm adding them in. And they are lovely.

Fighting games are weird. Since they're entirely dependent on animations and hitbox regions, it's kinda awkward to code since I can't do much until I have most of the art and hitbox data per frame. And combo systems are weird too, like, are you supposed to show the player shuffling around and cancelling half-played animations while he types out your combo?

Uni is going ok. This semester is pretty boring, though. I'm taking two required classes that have little to do with my major, and they're both lab classes, aka time sinks. Then a probability and stats class (I hate probability), a calculus-based applied science class (I love calculus and applied science) with lots of algebra (I hate algebra), and a computing class that uses MATLAB and Taylor series (my two least favorite things that involve math). So yeah, not very interesting or fun.

To the two or three people reading this, follow me on twitter for more frequent bitching. But you probably already are. Three people...man I really need to get front-page privilege...project manager for a daily 5th doesn't mean what it used to mean (if it ever meant anything).

...The things I do instead of adding buttons to a menu like I'm supposed to be doing. Booooooooring.

Midnight Musings #3


Posted by MSGhero - September 2nd, 2013


Working on Juggernaut 2, and I think I'm about a month ahead of last game's schedule. But it's only been 2-3 weeks of lazy coding between homework assignments. Something happened this summer. I think I evolved.

We have voice actors. It takes me a minute to add a new region instead of a day. It uses less memory and runs faster (though running faster means nothing in an rpg). It's...easy. Way too easy. I'm expecting that something horrid will happen and cause all sorts of issues. But, I mean, I did it all before, I can do it again but better. The only surprise this time around is the voice acting, but that's easy to add in.

Where's the difficulty? Where's the stress and hideous code? Where are the bugs that don't show up after 400 compiles but show up the first play for someone else? If the rest of the game goes this smoothly, my post mortem will just be "Game dev was smooth, I had no issues." That's not interesting. I want to bitch about how stressful balancing uni with game dev is, not how I can add a new feature between classes. I want to write about every time I didn't go out with friends in order to fix bugs, not all the movies I saw this fall. I want to show complex flowcharts of how I think a system should work, not my 5 line solution to the problem. I should have just held B during my evolution, this is boring now.

Of course, I haven't actually coded anything complicated yet, so I just fucking jinxed everything. But at least it'll make for an interesting story.