Something tells me perlin noise isn’t supposed to look like that.

Something tells me perlin noise isn’t supposed to look like that.

I didn’t realize that it’d been a month since my last release, wow. Again, there’s no visible changes in the last month, I’ve mostly been focusing on improving the engine as a whole. The code is more powerful now, but I’m hoping to implement the heartbeat system before I do anything else. After that, I might get the rejection messages going, so that the client knows something’s wrong and can fail gracefully. Once that’s done, I might finally be able to implement movement between the rooms.

There’s still so long to go. The most that I can do is focus on the immediate problems. 

Began focusing primarily on refactoring the engine.

  • Automatic packaging target via make
  • Refactored the network code
  • Removed delta time system from the client
  • All managers and utilities are now singletons
  • Refactored the map system to use stored lua functions
  • Encapsulated many data structures
  • Removed much of the vestigial combat and enemy code for now

Play the latest Windows build here: Tortuga.rar

You can follow each update to the game at Tortuga’s GitHub page, or you can read the current design doc. Any and all feedback is appreciated, feel free to contact me either via my tumblr page or at ‘kayneruse@gmail.com’.

P.S. Reblogs appreciated!

Way too much low level debugging :/

kr-studios:

After days of hard, tedious and time consuming work, I’ve come to the conclusion that I shouldn’t have done this.

The hardest part is sacrificing days of work by rolling back.

After days of hard, tedious and time consuming work, I’ve come to the conclusion that I shouldn’t have done this.

It looks like this whole branch is fucking useless, considering that I’ll need to reimplement that massive switch statement again just to determine which overwritten method to use. I might as well not have bothered.

An interesting insight to the development process for a custom platformer engine.

Segfault: SerialPacketBase has no way of knowing what implementation of the virtual functions to call.

The problem is replicated here.

#include <iostream>
using namespace std;

class Base {
public:
	Base() {}
	virtual ~Base() {}

	virtual void FooBar() = 0;
};

class Derived : public Base {
public:
	Derived() {}
	~Derived() {}

	void FooBar() {
		cout << "Derived::FooBar()" << endl;
	}
};

void function(Base* ptr) {
	ptr->FooBar();
}

int main(int, char**) {
	Base* derived = reinterpret_cast<Base*>(new char[100]);
	function(derived);
	delete reinterpret_cast<char*>(derived);
	return 0;
}

Because this memory is actually defined as a char array, ‘function()’ has no way to determine what implementation of ‘FooBar()’ to use. This is the same problem encountered in Tortuga. I have no idea where to even start.

source

If anybody has any fucking clue, I’d appreciate it.

Edit: BTW, the original implementation of FooBar’s equivalent had a built in switch, but I can’t figure out how to do that now.

I don’t know why, but the Receive() method is segfaulting. After all the work I put into this, now it just won’t work.

I don’t know what to do.