swixel dot net

Playing by the rules(?)

Engine Progress

I’ve sat relatively silent in terms of communicating what I’m doing (that is, if you’re not on my “Steam Friends” list, or in IRC with me).

In my silence, I’ve been hammering away on an based engine, based on the following wonderful technologies:

  • GLFW 2.7
  • OpenGL 2.1
  • OpenAL 1.1
  • FreeType 2.4.4
  • GLEW 1.6.0

And I’m considering rolling in the following:

  • OpenCV (latest)

The primary purpose of this engine is to replace GarageGame’s Torque engine in the full version of Orbsphere.  The secondary purpose is to work on some smaller games that feel a bit hacky on other engines (not that this engine isn’t hacky).  And its tertiary purpose is to work on some academic software I’ve been meaning to play with for a while (mostly visualisation stuff — looking particularly at graphing in fun ways ;)).

There isn’t much to show at this point (okay, there is, but I haven’t implemented input, or properly hooked up the GUI objects yet), and a lot of it will be a case-by-case utilisation, so I’ll be keeping the test product under the hood until it’s ready for testing.

For those wondering ‘why OpenGL 2.1?’, the answer is simple: my laptop has an Intel GPU, and it has OpenGL 2.1, but not 3.x — I’d love to use something like the procedural shaders I’ve seen on other products, but if my laptop can’t play it, I’m not sure I’m a fan of my own game; I want to open doors, not lock it down so its only available on powerful Windows gaming rigs.

Engine in Progress

So I’ve decided to move away from GarageGames and Torque and write my own engine. I’m starting with a single tool: GLFW.

Everything else is raw C++ at the moment.

I am contemplating a scripting engine, using the following languages:

  • Python (I would prefer this);
  • Lua (Other people appear to prefer this);
  • Erlang (what can I say, I need help);
  • Something else magic.

I’m also looking at putting together a few simple elements like the console and what not, but the engine will be accompanied by a game (to test it).

Anyway feedback is welcome (as usual).

Orbsphere: Prelude released; new game in the pipe

Orbsphere: Prelude has been released on orbsphere.net.

I’m presently working on an entirely different project, so the Orbsphere work is on hold at the moment.

As a less-than-subtle hint, I’m watching the moving `Hackers’ (from 1995) — it’s on iTunes and is probably a cult classic.

Team Fortress 2 Items and Game Coordinator

Since the potato hat release, there has been a renewed misunderstanding of how TF2 items are used.  I think it’s time I correct that.

(FALSE) Myth #1: Servers do all of the item handling

While this was once true, modifications like the “TF2 Equipment Manager” changed this for everyone. The change ensured that both client and server check the backpack.

(FALSE, unless they’re Valve) Myth #2: People can create items with console commands

For the modders who have found something to hook within the server binary, that does not work, and has not worked for a very long time (if it ever did — as far as I know, nobody tried).

(MOSTLY FALSE) Myth #3: People can create items with hacks and get away with it

While they could, and it’s become apparent to me in the last two months how they could, I have almost no doubt that Valve logs every single bit sent through the system in question, and therefore that abusing it would result in a VAC ban. The way to make items was only made public by Valve in what I could consider to be a mistake made in trying to optimise the game.

There is a lot of speculation in the opensteamworks community that someone malicious found out how to find out during the potato hat update. <REMOVED> Apparently the hole has been closed (I’d dare not test it, others haven’t either, but apparently it doesn’t work.)

(FALSE) Myth #4: tf2items hacks your backpack data

No. Asherkin’s TF2items extension does not hack your backpack data, it recreates items and gives those items to the player. It’s opensource, so go read the source if you doubt me.

(FALSE) Myth #5: The item system is easy to hack

While this isn’t so much a myth, it’s fairly difficult to actually do anything unless you found the vulnerability above. The opensteamworks project does have headers obtained/constructed through reverse engineering which reference the old item system. This system is no longer userd. Instead something called the ‘gamecoordinator’ is used. This system is connected to Steam itself, and it appears (from the tf2 server and client binaries) that tf2 has its own abstraction. I would suspect other games with items (DOTA2?) would likely use it too.

(FALSE) Myth #6: The GameCoordinator data is public, and opensteamworks made it possible to hack the game!

No. The opensteamworks project did not publish the leak. While they published a lot of information other than that particular leak, they showed incredibly good sense and character by notifying Valve about the issue, rather than making it public.

(UNKNOWN; why would you?) Myth #7: Debugging the game will always get you VAC banned

Try -insecure, or better yet, debug the server; chances are, there is no legitimate reason to mess with the client beyond skinning things. If you debug in secure mode, it’s your risk, and I wouldn’t blame them. I haven’t tried it, and I wouldn’t recommend it. Though apparently many modders run both server and client through VS2010; but without the source, or a client side plugin to debug, there’s no point anyway as you won’t catch anything.

(MOSTLY FALSE) Myth #8: I run a TF2 server, and have installed SourceMod, therefore I know everything

There are some exceptions where this is probably true, but I sincerely doubt it for most of you. I don’t know everything, but I have the good sense to go looking before I start spouting nonsense about how you can hack a game with a plastic whistle and a tinfoil hat.


If you want more information on the game coordinator, be aware that most of it has been published in relatively shady places which talk about techniques to violate software licences (rin.ru being one place), or have published information which many may consider questionable from a legal point of view (opensteamworks). I find that reading information doesn’t hurt me, but if you use it, it’s at your own risk.


As a final note, I do not participate in the reversing of data for use in the opensteamworks project, as I wish to publish a game on steam with steamworks and do not wish to upset Valve prior to that. If you have any questions about what is already available, the comments in the provided source should be enough; and I will probably answer simple questions regarding what is already in the public domain (regardless of source), unless in an agreement with Valve (i.e. they accept a submission of mine) I am requested not to do so.

Orbsphere: Midgard’s cone of silence broken

For those who haven’t already seen it, Midgard’s name has been revealed, and any further interest should be expressed on the Orbsphere blog, Facebook, or on Twitter.

http://orbsphere.net

Midgard Continues …

‘Codename Midgard’ or ‘Project Midgard’ continued today, with some minor modifications to the UI — nothing too saucy, just a tweak here and there, mostly to do with spacing.

Update

  • GUI Status ~90% done / production stage;
  • Client Logic ~2% done / planning stage;
  • Server Logic ~2% done / planning stage;
  • ‘Race’ file format (.ball) designed and implementation started;
    • Base game will ship race;
    • Free update race will come later (I’d prefer it to be balanced before release, and one race can’t be unbalanced with itself ;));
    • Potential for other races as free/paid DLC (would like to keep that 1:1).

There is a lot of background logic beyond client/server, such as main menu, option dialogue, bindings, etc, but the GUI now has default binds / shortcuts on most of its buttons.

First work in progress shot from Project Midgard.
Needs more polish before it&#8217;s ready, as well as more options throughout the game.

First work in progress shot from Project Midgard.

Needs more polish before it’s ready, as well as more options throughout the game.

Introducing codename ‘Midgard’

As I have hinted to various people over the last few days, I am, in fact, attempting to put together my own game.  Sick of tormenting randoms on TF2 servers, or pointing out that that glitches still exist from the original release, I’ve taken to work on my own genre-bending madness, well away from First Person Shooters (though the engine was actually designed for FPS games, go figure).

For various reasons, I am codenaming the project ‘Midgard’.  This will, incidentally, be the name of the initial release/version. I’ll take posts about it with ‘project midgard’ from now on.

The genre of the game is, at present, a rather poorly kept secret, however, I will not be posting it here.  To say the least, it is more like an RTS game than an FPS game, though, the HUD will be more cluttered than many RTS games (you can, of course, turn off parts of the HUD, in game, without fighting with a nasty options dialogue).

The projected progress goes like this:

  • Design UI (~50% complete);
  • Design ‘Sandbox’ mode (~10% complete);
  • Design campaign (planning stage — may not be part of the original, but instead listed as a ‘promised’ patch);
  • Release a beta test of the game;
  • Patch as required;
  • Release single player game.

At this stage, this part is listed as ‘wishlist’ by me:

  • Optimise the communication stacks;
  • Work on additions to the game (free patches and some paid DLC)
    • Free Patches/DLC will include a campaign;
    • Paid DLC will likely include sidegrades.
  • Work on multiplayer code (presently total wishlist stage, as optimising for more than 24 players is annoying).

There will be more updates as I progress, but for now I’m working on the core gameplay (available in the ‘sandbox’ mode). I will say that, like many other games, sandbox is all that is really required, but I would like to add objective modes, and add support for ‘modders’ (or level makers, in this case).

For the two people who’ve stumbled blind drunk on this blog, I hope this helps clarify the earlier post.

Assassin’s Creed

I wonder when Ubisoft is going to make an Assassin’s Creed game that plays like it was actually meant for a controller beyond the original Playstation; hell, I’d settle for jumping in more than four basic directions on the PC versions…

I’m yet to launch Brotherhood, but I’m concerned I won’t be pleasantly surprised.

Personal Project

For the last few days I’ve been relatively quiet.  This is, in part, because I have been watching NHKWorld and revising my knowledge of nuclear power (I prefer to be informed; and it’s not as if the overview is terribly difficult).

The other reason for my relative silence is work on a personal project.  Now, I’m no notch — though I’m sure we all wish they thought up Minecraft.  No, I’m working on a project I’ve kicked around for years.

Having secured myself a licence for a royalty-free game engine, I’m now exploring its power to bring my dream into reality.  (SFML, SDL, and Allegra all ultimately annoyed me more than they were worth, so even though this is closed-source, I still intend to keep bits and pieces open, at least to modders.)

More of this will no doubt come out later, and the people who need to know (or I want to know, at this stage), already do.