Friday, December 20, 2013

Dev Update 4

Another 10 days! What've we got done. Well, we submitted our Imagine Cup Project Blueprint entry earlier this week, on the 17th. We think we have a fairly strong submission. 

Anyway, as promised, physics was in the works for the past 10 days. We can now run up and down stairs smoothly. It's not perfect, but it's still in the works a bit. Also, we actually started adding some of the first real content. We have a working door, and a bunch of other stuff to place - most of which doesn't actually function yet, but they look pretty! I've implemented a placeholder lighting system to pretty things up a bit. We've also set up our unit testing framework and libRocket. We're using libRocket as our GUI system.

Today, I set up an Arch Linux server, which is plugged in at our upper division computer lab in the computer science department at our university. I'll reveal some of the stuff we'll be utilizing this server for later, probably in the next update.

Oh yeah, we also finally implemented the back grid, so you can place wall tiles.

The obligatory video:



That's all for this update, thanks for reading!

Tuesday, December 10, 2013

More Physics, First Spaceship Concept Art

So it's been another 10 days since the last post, and I've been really stressed out. I've been constantly thinking about how huge Tetraverse is, and how much a challenge it is to implement. Its development is a huge undertaking. Anyway, we worked on the physics engine more. We got multi-manifold and grid on grid collisions working. Basically, since calculating true grid on grid collisions would be incredibly difficult to implement, we simply perform a polygon on grid collision check, using an approximated convex hull for the smaller of the two grids. Right now, the convex hull approximation isn't perfect, but it works well enough for now. Check out a video:
The new physics engine proves to be a much cleaner and smoother system than the old hard-coded collision system. Also, Ryder produced the first concept art of a very simple exploration ship. It looks pretty sweet:


For the next week, I'll be working on the physics. I'm going to fix the crack problem, where the edge of your character's physics box gets stuck on the corner of the next tile, which is visible in the video. I'll also be fixing the convex hull approximator, which will produce the smallest convex hull that contains all of the vertices. There's also a jitter bug with the polygon on grid collisions, which is being caused by the multi-manifold collisions. The same impulse is applied multiple times. The solution is to use only the smallest penetration for each axis, which you can expect in the next update.

That's all for tonight.

Saturday, November 30, 2013

Preliminary physics and lighting

It's been 10 days, you'd think something might get done in that amount of time. Stuff did get done! We have an all new, in-house physics engine capable of all kinds of fun forces and torques. I wrote a collision shape for grids over the weekend, and that's how the player is colliding now, which you'll see in a video. To my knowledge it's the first time someone's actually integrated a tile grid shape into a physics engine, rather than creating polygon shapes to fit the tile grid.







As you can see, there's little square outlines around some squares. Joel wrote a nifty debug display that outlines tiles that are "interesting," or tiles that need to be processed in some way. Now check out the lighting system! It's not done yet, but there's some progress.



That's all I've got for today. More updates soon. Super stoked to compete in the Imagine Cup Blueprint Challenge!

Wednesday, November 20, 2013

First Update

First post cheeeeee!!!!!!!!!!!!

Tetraverse is a game we're making for the Microsoft Imagine Cup competition. This is where we'll be documenting all of the progress. Let's start with a brief description in one sentence: Tetraverse is a side-scrolling, tile based, sandbox RPG for the PC set in a procedurally generated universe. Whew! We are using an in-house engine written in C++ and designed around the entity component paradigm. We use SFML for rendering and sound, enet for networking, and Spine for skeletal animation.

I'll try to give a brief description of the game. You start on a randomly generated planet. You explore and gather while fending of wild creatures to gain resources. You build shelter and expand your reach. When you have conquered your world, you can build a ship capable of traversing space, find new planets, and have space battles with NPCs and other players over the network. Tetraverse is influenced by games like Terraria and Minecraft, and we wanted to continue that adventure feel with more complex engineering options. Players can design complex systems with our wires and physics, and ships will be completely designed by the players. The universe is completely seamless - you fly your ship out of the atmosphere and through space to other planets.

I started development 2 months ago, and teamed up with Joel and Ryder for the Microsoft Imagine Cup competition around 2 weeks later. So far, we have basic tile functionality, water physics, and I was able to build the first spaceship today. It's super basic and very buggy, but here's a video:



That's all I've got for now - more updates soon!