Bunch of Chiptunes Posted on May 12, 2013 at 19:47
I can't remember when I last posted any of my chiptunes to this site (And I'm too lazy at the moment to scroll through my old blogs), so here we go. Have a couple of my most recent chiptunes that you may or may not have heard :P
FTB Marathon - Starting between now and 9PM GMT Posted on May 11, 2013 at 06:25
Gentlemen/women, start your engines/FTB downloads.
Ambiguous old blog stuff
When should we have this?
Seleney suggests next weekend. I suggest the usual time (That being about 10PM GMT).
What do you need?
The Feed the Beast Launcher. Download the EXE/JAR depending on your system, and run it.
Once the launcher has started, select the "Ultimate" pack, log in to Minecraft.net, and the pack should download.
The FTB packs are stored in their own folders, and won't screw with your existing Minecraft installation (and saves).
Yes. But you'll have to install it manually. I'll assume you know how to do this.
Having trouble with the download?
If not, try this (Which fixed the download for me):
> Delete the Ultimate folder if it partially downloaded.
> In the FTB launcher, switch to the Options tab, click on Advanced Options,
and try selecting a different server to download from.
Take the zip that you download, and put it in the <wherever you told FTB to install>\Ultimate\InstMods folder.
You are now done.
If you absolutely cannot download FTB
I'll be uploading a clean Ultimate folder to DropBox. PM me and I'll send it to you.
I'd recommend using the FTB launcher as the easiest route.
You'll just have to unzip the Ultimate folder into the folder you installed FTB to.
Otherwise, you can try to use another launcher, but you're on your own with that.
If you're joining in, confirm it in the comments.
Holy cow, what am I doing trying to organize a Minecraft event ;_;
Righto, Aeron and I were discussing this on IRC, and we decided to post a tentative "is anybody interested" blog about it.
Feed the Beast is an easy to use mod-pack for Minecraft, featuring a huge number of great mods. Some highlights from the list include:
> ComputerCraft (Computers, programming, networking)
> IndustrialCraft 2 (Nuclear Reactors and stuff)
> Buildcraft (Pipes and such. Shuttle your waste water into somebody elses house!)
> MystCraft (Write your own dimensions!)
> Portal Gun (Need I explain this one?)
> Modular Forcefields (What it says on the tin)
> Thaumcraft (Magic in Minecraft!)
And of course, a load of other mods. These are just some of the highlights.
Anyway, I suggest that you download the Feed the Beast launcher and give it a try. It won't mess with your existing Minecraft installation, and it's easy to use.
Try the Ultimate pack (At the top of the list).
If this generates enough interest, the intention is for us to have a major survival marathon.
I made this thing... Posted on May 02, 2013 at 03:54
As a challenge, yesterday, I decided to start writing an OBJ model loader again, and see how hard it would be to plug it in to Exile.
30 minutes later, and this:
Don't get too excited though, I'm probably not going to be using 3D models for items or weapons in Exile. Mostly because 'converting' or 'reimagining' all the existing items and weapons in 3D, not to mention the enemies (Because sprites and models won't look too good together) would be a pain in the neck.
Their actual use was intended as simple level decorations, like tables, lanterns, whatever. Basically, those floor/ceiling decals, but models.
The 3D, however, is now a core part of the engine, and I'm intending to make a game that fully utilizes it, using the existing engine. Specifically: A Doom/Quake inspired shooter. Because I can. :P
Eventually, I'm going to want animations. I have a few ideas for this.
Solution one is to write an MD2/MD3 model loader. I have been wanting to do this for some time; but the coordinate system in MD2/MD3 models doesn't match mine, so it'd require a major core engine rewrite. So scratch this.
Solution two is to use Blender's OBJ animation export, which exports an animation as a series of separate baked models. (So something like sword_001.obj, sword_002.obj, etc). Of course, this would be a lot of little files.
So my idea is to use my PAK tool to pack them together. Problem solved.
Another plus here is that my engine is running on a fixed timestep. Makes it easier to 'play' the animations.
I remember when whoever-it-was who did the RPG4D playthroughs laughed at my Readme, and the system requirements. Well guess what? I didn't just smoke them up. They're worse now though.
This being my first 'complete' 3D game and engine, it's inefficient. Like the IRC bot, it was 'grown', not designed from the ground up with any specific purpose or goal in mind. That I got it to where it is today is nothing short of miraculous (And it still hasn't crashed much... a bonus, I believe).
Of course, it'll run fine on anything that has a Dual Core CPU, and at least an nVidia 8 series graphics card. And I've managed to keep it's RAM imprint very low (40MB at average, up to 200MB with lots of enemies/models. And I mean a lot).
Anyway, I've managed to somewhat de-lobotomize the enemy AI, to the point where most of it functions correctly. 'cept for the Red Gargoyle. But that's a small fix.
Pardon me for rambling about Exile again :P
Here, have the source code.
// Loads OBJ models and renders them using VBOs or Immediate mode
/// We have the raw data. Let's parse it and try to make sense of it.
for(int i = 0; i < filedata.size(); i++)
vector<string> line = MIO::split(filedata[i_hate_bbcode_sometimes],' ');
string lo = "";
for(int j = 1; j < line.size(); j++)
lo += line[j];
if(line == "#")
cout << "Comment line..." << endl;
if(line == "mtllib")
obj.mtllib = line;
cout << "Material file: " << obj.mtllib << endl;
if(line == "o")
obj.oname = line;
cout << "Object Name (First only): " << obj.oname << endl;
if(line == "v")
// Get rest of input from the stream
float x, y, z;
if(line.size() >= 4)
x = atof(line.c_str());
y = atof(line.c_str());
z = atof(line.c_str());
x = -99;
y = -99;
z = -99;
// Push vertices to model
if(line == "vt")
// Get rest of input from the stream
float s, t;
if(line.size() >= 3)
s = atof(line.c_str());
t = atof(line.c_str());
s = -99;
t = -99;
// Push vertices to model
if(line == "f")
// Face reading is going to prove annoying at best.
// No normals read in this version.
// Assume tris only
EDIT the second:
There's still a good bit of ambiguous code in that lot. Scaffolding, mostly, such as the bits that tell you a comment has been read.
Also, using this in Immediate mode is slow with too many objects (Mostly because all the vertices, normals and indices are being stored in vectors, as floats). That's why the VBO code is there.
If you don't know what VBOs are... Short and simplified explanation of VBOs
Vertex Buffer Object's allow one to store all the vertex, normal and texture coordinate data (Along with some other types of data) in a single array (Or multiple arrays, but single is more efficient), then offload this array straight to the graphics card, thus storing the verts, normals and texture coordinates in VRAM, which is very fast. This makes model rendering extremely fast.
With my vbo rendering code, only one loop through the model vectors is required, when the vbo is constructed. That only happens once, when the model is loaded in Exile.
A VBO can also be edited during runtime. So if I wanted to deform or animate my models, I can.
My next move is to build Exile's levels into VBO's at load time (Will take longer to load, slightly. Like about 0.5 seconds longer. And it's already only taking a few milliseconds). This will net a major performance increase.
Ludum Dare 26 entry: Rocket Runner Posted on April 28, 2013 at 16:47
So, let's get this started in a classic way.
After my disappointing performance in the Google Code Jam, I was feeling depressed. Then I noticed on my Twitter feed that people were going nuts about Ludum Dare again, so I figured it must be taking place.
Anyway, the theme was minimalism. I made a simple platformer of sorts, taking inspiration from Canabalt a bit. I went for a minimal control scheme, though originally was going for minimal graphics.
A little project of mine (AT/DIN Keyboard) Posted on April 23, 2013 at 07:02
This blog was partially typed on an ancient 70s/80s era keyboard.
On IRC a while back, I mentioned that I had an old PC/AT clone sitting in my garage, along with a monitor, keyboard and good ol' dysfunctional CGA board :P
Originally, the plan was to 'restore' it, and mess around with it's ancient processor; but eventually that idea faded. I can't find a compatible CGA board anywhere (That I don't have to pay through my nose for).
So anyway, I took a crappy PS/2 keyboard, cut it's wires, and connected it's connector to the ancient keyboard. Here's some photographs:
And here you have my computer station, and a glimpse of my current living quarters. The keyboard is in front of the monitor.
Here's a closeup shot of the keyboard, in all it's faded yellow glory :P
Note the lack of a Windows key (It has a MACRO key instead :3)
And here we have my workspace (I need a workbench, seriously), along with the gutted remains of a pitiful excuse for a keyboard. Also, there was a lot of dirt inside the old keyboard. I'm still dealing with it (Some contacts need cleaning. The a, d, Up Arrow, Right Arrow, l, ', Tab and End keys aren't responding).
Oh. And have a picture I took of my guitar and a fragment of my game collection, since I was trigger happy with the camera:
Yeah. My room's crowded and therefore quite a mess. Though I usually keep it clear enough; tripping over electronic bits and pieces at midnight isn't fun.
Anyway... The technical process
Right. I had read some articles online about converting the DIN connector to a MicroDIN (PS/2) connector, and information was vague, and basically sums up to "It varies per keyboard, figure it out". So I opened up both, cut the cables, and examined the PCBs.
Most four-pin/five-pin keyboard connectors follow a similar pattern: V, GND, DATA and CLK. This was labeled on the newer (PS/2) keyboard, but not on the AT keyboard. My initial attempt (Which turned out to be correct, too), had me wiring them in 'logical order', based on the connectors on the board.
Now, my only concern is with cleaning the mechanical switches. A lot of dirt and some corrosion has set in. Fortunately, it's nothing that can't be fixed.
Oh, and typing on this thing is loud, and awesome :D
So, you know those sleepless nights when you have thoughts flying around your head, trying to pull off a decent imitation of TIE fighters?
That was last night in a nutshell. So in the interests of getting to sleep sometime before 8AM, I turned my PC back on, opened Notepad++, and started typing.
Here are select fragments that I actually like, pertaining to my idea:
Base genre: Roguelike
The idea is to present a multiplayer persistent world, akin to a region from
The world presented is a simple field with trees. The players must construct
some defenses, and start to dig. For about 30 layers, everything is 'safe',
disregarding natural hazards; you'll find ores, caves and gems.
After 30 levels, the dungeon levels begin, going down 70 levels. These are
going to be balanced specifically with the idea that a group/community must
clear them out.
At the same time, each player can develop a specific skillset; a blacksmith
will be invaluable to the other players, and will be able to make some high
level weaponry, tools and armor later into the game.
Cooks will be able to use basic plants and ingredients to make healthy meals
that the other players use to restore their health and stamina.
Other skill groups will encompass something akin to Dwarf Fortresses'
selection; farmers, fishermen, carpenters, fletchers, miners, etc.
The game itself will be 'realtime', meaning that time progresses independantly
of one players actions, similarly to TomeNET or DF. Monsters and other Actors
will move according to their speed levels.
Communication will be a concern. A traditional chat would take up too much
space on the screen; a separate screen that is accessed by pressing a key
(Maybe 'm', or 'j', for journal), would bring up all the latest messages, and
the status bar at the bottom of the display would show the most recent
Otherwise, TeamSpeak or a similar VoIP chat program would work wonders.
World regions should perhaps be fixed in any early attempts. The server will
have to store a copy of the world, and provide the world seed to all clients.
All clients will then have to generate a local copy of the world for
themselves. From there, the server will only send important updates; those
mostly pertaining to what the other players are doing.
A full world, like the kind Dwarf Fortress creates, would be great if the
number of players could be increased; perhaps in a situation where at least
several hundred players were participating; this could lead to interesting
world/lore building, feuds and wars between different settlements, trade, etc.
But for first experiments, a single 'region' would be best to experiment with.
I dub it Minefortressdwarfangcraftband. I'd have binned it already if I didn't know I could do this.
My question is, would any of you play this if I made it?. Because it's going to be a mostly-multiplayer game. Single player would be possible, but far more tedious (Having to invest in and improve a multitude of skills, and being alone).
And then the question arises: Do any of you absolutely detest a Curses display for any logically sane reason? Because tiles will take a long, long time. :P
Taking the timezones into account, this means that I'm starting at 1AM (even though the qualifiers run for 25 hours, I'd rather get in at the soonest possible time).
I spent my preparation time trying to get some sleep; I fever dreamed about code, reasons not to try use C++11 features, file IO techniques and a bunch of other nasty things that wouldn't leave my tired mind alone. Net rest: 5%.
After that, I woke up, had some coffee at midnight, and ate some home-made apple pie that my grandmother had left for me. This is not strange at all...
It's strange to actually have completed a game download from Steam on the same day I bought the game.
Anyway, I started playing it (I decided to leave the Legendary difficulty for now). I'm marginally impressed by the world they managed to build. Also, I'm snickering at all the Fallout leftovers. Like the lockpicking minigame; it's a dead ringer for Fallout's lockpicking minigame.
Anyway, I'm the Thane of somewhere or other, some old farts up on a mountain rudely yelled at me, and I killed a dragon... oh, and shouting at people makes them mad. :P
Gearing up and other things Posted on April 11, 2013 at 05:17
Tomorrow the Google Code Jam begins. And as stated before, I'm starting to panic. Or feel highly nervous.
I'm confident in my code, what I'm not so confident in is my time management :P
My preparations so far involve gathering my tools into once place (And creating easy to remember control codes for them in ControlPad), clearing my desktop of all clutter, and compiling a playlist of good music to work to.
Another Minecraft Mega-build
Not a castle this time.
A huge fortress-like airship. It has four decks (Not counting the forecastle, bridge, and passenger cabins; those are going to be sitting on 'top' of the poop deck. Yes it's called a poop deck. Stop laughing...)
Not in the pictures, but I've added slightly swept wings to the ship that will hold the propellers, and I'm planning out two balloons that will 'hold' it up, as well as a lookout mast. I'm now using Glimmar's Steampunk texture pack, so I can say that it looks great.
Got into this because my grandfather has been building model ships on commission.
Oh, and I bought something
I finally caved and decided to buy Skyrim. To make space for it, I deleted Team Fortress 2; and no, I won't be installing it again. I think I'm sticking to Red Eclipse for my prescribed dosages of competitive multiplayer gaming.
And on that note, I've finished Fallout New Vegas. It was interesting, but I greatly preferred Fallout 3 in terms of setting, story and general 'feel'. New Vegas didn't feel like it took itself seriously enough. I mean seriously, Caesar's Legion? How the hell did a bunch of post-apocalyptic survivors discover enough remaining information about the Roman Empire to impersonate them when in-universe it seems difficult enough for people to find information about the period just before the war? [/rant]
Anyway, enough of that. I'm signing off for now; I probably won't be back for two days, since I'll be busy applying my face to my keyboard.