Archive for the 'Programming' Category

Blog updated

I decided my blog needed to be tinkered with. I didn’t do an overhaul or anything, just messed with fonts and added some more CSS3. I uploaded two more headers into the rotation, too.

I need to start writing more about what I’m working on. People are always asking me and I never know where to begin. Here’s the thing: I’m always working on something. What it is can be totally different each day. Although right now I’m pretty focused on Zinger!. We’re closing in on the deadline for the Fretta Contest and we’re really excited about it. Not much is left, actually we’re just finishing up a few odds and ends.

I’m going to be writing a few articles related to Lua soon so you can look forward to seeing those. Actually I’ve already started… I just need some spare time to finish the first one (work has kept me so busy lately!). Technically I shouldn’t even be writing this now, I should be writing those… GOTTA GO!

Project overload

I’m swamped. Arcadium Software is working on a commercial project that has absorbed a metric fuckton of my time. No its not a game but we’re working on a web application for a big ass company. Its sorta weird how it came all about:

A few years ago my dad was using a really archaic method for keeping track of what vehicles he was in charge of. Like… where they were stationed. He wrote the vehicle number down on a magnet and placed it on a white board and moved them from square to square depending on where the vehicle got shipped. So I wrote him a digital version of that and since he struggles with computers, I totally mimicked the look of a board with magnets on it. Except you could double-click any “magnet” and open up extended information and tools on it. Needless to say this worked many times faster and he instantly fell in love with it. I spent loads of time in the UI so it was extremely user friendly.

Well he has since left that company and moved on to bigger and better things. Little did I know he continued to use that program and one day his boss saw him using it and one thing lead to another… next thing I know I’m in a meeting talking business for writing this company a custom software tool. So a lot of our time is being dedicated to that…

BUT THEN…

Garry decides that he wants to start a Fretta gamemode contest with some high dollar incentives. So now we’re working on THAT at the same time. Our goal is to submit two gamemodes so we really gotta bust ass on everything. We’re not going to sacrifice quality though, so its just time dedication.

BUT THEN…

All these new games have come out/are coming out and ahhhhhhhhhh. I’m deep into Fallout 3 right now, I’ve got Borderlands to focus on, Left 4 Dead 2 soon… Modern Warfare 2– fuuuuuuuuuuuuuu–

AND NOW FOR SOME COMPLETELY UNRELATED MEDIA

Awesome:

SMF Mod: Color Group Name In Post

Since I’ve been working on the Arcadium Software Forums, I’ve found a few things that I wanted to modify about SMF but couldn’t find a working mod to accomplish it. This is my first release. Basically it changes the users group name into whatever color their group has been designated. Simple. Easy. Nice.

Before:
Before

After:
After

Release: http://custom.simplemachines.org/mods/index.php?mod=2225

Let me know of any problems!

Reflection: Arcadium Software

What can I say? I’m a hobbyist. I like working on anything related to games. Even if I don’t finish a project per-say; I still enjoy the journey.

Modulus Software… Bakburner Etc… Arcadium Software. What’s up with all the name changes? Its just a branding really… nothing official. And to be honest they’re all 100% pointless. I’m pretty sure Arcadium Software is where we’ll stop, though. I’m confident in that because its the one that really means something to us; not just a name we invented just for the sake of having a name. We started out writing stuff for The Arcadium and all of our projects have evolved from that. It fits.

We’ve had our ups and downs as far as projects go. Those of you who’ve followed us from PGM to GATM until now have seen some interesting shit come and go. Successes? PGM+gNIX, Hoverboard, Firebox and MuseX, The Zinger Gamemode… plus Chad’s numerous useful modules. Failures and disappointments? GATM+Gear, Gadget, Zahmbeez!, The Zinger XNA Game/Arclyte, etc, etc, etc… lets not dwell on those; what we take away and learn from them is more important.

What have we learned? LOTS!

Chad and I both have what we’ve come to refer to as Developers A.D.D.! We really have a hard time focusing on projects. Its not a lack of commitment, its just we often find other things of interest that detours us from— holy shit that cat has a big nutsack!

Secondly, we’re also O.C.D.-ish perfectionists. Which is why we “start over from scratch” oh too often.

And finally… although we both retain the ability to do all sorts of extravagant stuff, including writing a game engine from scratch, what we’re really best at is developing for Garry’s Mod. Why? Its simple: its where our roots are at. And as a couple of programmers, using all the already existing content of Garry’s Mod makes our work so much easier. When we try to do standalone projects we find ourselves like a couple of bums wandering around town begging for content… “maps for the poor? a few models please? just spare me a texture or two? no I won’t buy alcohol with it… ninjas kidnapped my family I need assets to buy kung-fu lessons”.

So whats Arcadium Software up to these days? Surprisingly to most of you… LOADS. We don’t talk about our projects much anymore. We’ve learned that hype isn’t really something you need at the start. Sure, once you have something to show… something worth showing… then you can start fishing for interest and find yourself some followers to get decent feedback.

On my days off when I’m in my garage (because the rest of the family is sleeping) I’ve started working on the Arcadium Software website from my laptop. I’m trying to manage my time better. So instead of working on the website stuff during the day (when I have access to my desktop computer), I work on whatever project I’m currently occupied with. I’m maximizing my time! A concept new to me ;)

If you know what we’re up to, you sneaky bastard! If not… patience. Because we are up to stuff :D I’d like to invite you all the rejoin the forums and tinker with them; let us know of anything that needs to be fixed. (read this thread as to why you need to rejoin the forums)

Fuuuuuuuuuu-

So we spent about 6 hours attempting, reattempting and double reattempting to give the GUI textbox support for multiple colors… which by itself isn’t all that hard, but then trying to word wrap at the same time made it a pain in the ass! Eventually we figured it out and we were so excited.

Then we found it had an incredible FPS drop with a lot of text…

…so we reverted…

…then we found out that even without multiple colors there was an insane FPS drop with a lot of text…

…back to the drawing board.

True story bro.

What a difference a skin makes

Update on the GUI, started working on skinning. As always, make sure to view it in HD:

HD link

The Collector

This is a Garry’s Mod gamemode I began developing a few months ago. It started out as an experiment to see how much of a horror atmosphere I could introduce to an existing level using dynamically generated audio & visual effects.

Everyone loved how it turned out and asked me to add more of a “game” to it; which I eventually did. There are several puzzle-quests the players are put through (yes its multiplayer), but I didn’t spend any time in the video demonstrating them. Maybe I’ll show them in another video (if anyone is interested)

P.S. Click here and watch it in HD

GUI Demo 1

Now that I have my video recording working 100% (and at a higher quality I might add–thanks Borsty) I figured I would start posting videos of our progress. Not only is this interesting for anyone following our work (which is probably a very small group) but it will be fun to look back 6 months/1 year/5 years from now and see what it all started from.

HD link (recommended to read text)

From the ground up

Even though most of us are slightly derailed with real life shit, Arcadium Software has continued to progress on our flagship game, Zinger.

One interesting thing I keep reading on different sites is people referring to XNA as a beginner language for writing games. Although it can be interpreted this way, I have to disagree. In my opinion XNA (or C# w/ the XNA Game Studio… whatever) isn’t as much of a beginner language, but more that it has the possibility to be a rapid development language.

Yes, working with managed code is always easier than unmanaged code, but that doesn’t mean its anymore beginner friendly than the next. There is just as much of a learning curve writing C# applications as there are C++ applications. In the first few steps of writing a C++ application you echo “Hello, World!” to the console… and in C# its pretty much the same thing except you’re printing “Hello, World!” to a windows form.

Aside from that, coining it as beginner tends to assume it lacks the ability to be mastered… that there’s a skill cap on it. I’ve only been working with XNA a few months now and have already learned things I wish I knew at the start. Which is a perfect segway into the meat of this post…

When we first started writing Zinger it was with the mindset of “hurry! go go go go! do it! do it!”. We didn’t pay much attention to anything other than making leaps and bounds of progress. And it worked really well! We accomplished goals and milestones we could only dream about in the past. Only problem was the code became so concrete in its current application it made us worry. What if we want to use this code in a different game? Would we need to tear it all apart? Would it even be worth the effort?

About that same time we also started to notice a few issue with some of our implementations. There we limitations on features we knew needed adaptability down the road. Things like the GUI scaling properly as the resolutions changed while in-game… or the XML based menus requiring tricks and hacks for displaying screen resolutions. If you’re writing anything from scratch, you should NEVER have to use a trick or hack to make something work. Yes, I am personally responsible for most of the problems but hey… I’m new to the language and we didn’t set out to make an engine. That had to change.

After exploring a variety of artist styles, we’ve designed a new style of graphics we want our game to use, and we’re going to write an engine tailored to it. Why? Because we absolutely love the style and its very unique. Once we’ve completed the engine and Zinger, you will forever recognize the style to be an Arcadium Software product. Sort of how you can play almost any Source Engine game and say “yea, this is totally the Source Engine”.

As much as I would like to refrain saying we’re rewriting what we had from scratch, that’s exactly what we’re doing. Except now we already know how to do everything and have our code right in front of us to reference, which speeds things up tremendously. This time we have the right layout and I can’t even begin to explain how much better its already turning out.

In before tl;dr

Zinger! progress and stuff

New splash screen, the sunbursts are actually animated so they spin around… quite a trippy effect in full screen:
Arcadium Software

We made that for S & G’s. And now for a something completely different:

Chad started some clientside interpolation for our prediction. Our goal is to have a smooth and enjoyable multiplayer experience. Basically what happens is the client (you) doesn’t rely on the server 100% for exact values of visual things like, for instance, the position of a ball. If your screen rendered exactly what the server told you and the game happen to have a little bit of lag, you’d see the ball warp across the screen. Instead using prediction and interpolation, it smooths out the movement to look more realistic even though the lag is still there.

Additionally, Chad just barely started implementing the physics, BulletX. Really looking forward to see what he’s going to manage.

Me? I’ve been doing crappy shit like advancing our GUI library to include tools for building a settings menu and shit. It’s really boring and I can’t wait till its done. Even though I hate it so much, I know its really needed. Such a simple tool yet so necessary for any decent game. Some games missed out on this feature and it really shows the lack of attention to detail. Although Infiniminer is a wicked fun game, it really blows ass to have to exit the game and edit a text file to change settings… oh well.

I’ve also been reworking the audio system thus far. Mainly improving performance and moving away from the MediaPlayer library. That thing sucks all sorts of donkey anus and I won’t go into how laggy it can be (you play a song and it waits 3 seconds while it blocks the rest of the application before you can actually hear anything).

I also emailed Steam, which you can keep up-to-date with here.