• Register

11403315 418204181697379 9197518

Overview

ExtroForge is both a first person shooter, and a real-time strategy game, with colony building and construction as the basis of the experience. ExtroForge also has a rich story deep in lore and history, with a good measure of thematic mystery thrown in.

This game won't just be fun to play, but it'll be fun to talk about and ponder about, like a digital version of the hit TV show "Lost".

ExtroForge takes players to a strange and mysterious alien world, where they must work with their teammates to make a new home for the human race. The alien world is both beautiful and ruthless. There are sweltering jungles, frozen ice lands, ancient canyons, rolling valleys, and more.

Using only minimal technology, players must begin securing resources, and then use those resources to establish a colony and base of operations. Utilizing a modular structure building mechanic, players use various building materials to construct whatever they can imagine. Towers, walls, buildings, bridges, etc.

The core of this game is a first person shooter that innovates in a number of different ways:

· Open World - Players have absolute freedom to go anywhere in the world. Each game is on a completely and totally randomly pre-generated 36 square km island in the middle of a vast ocean. Every game will be unique and memorable. It's one big battleground.

· Multiplayer Resource Management - The team must work together to build an infrastructure to maximize their resources. From discovering the mineable items deep in the wilderness, to extracting energy and building materials, to chopping down trees, to building power lines over mountains and valleys to bring those resources back to the colony, players will have to work together for the success of the team.

· Powerful Construction Tools - Using intuitive controls, players will quickly be able to set about the construction of epic bases, towns, cities, towers – whatever can be imagined. Build a towering platform that overlooks half the map. Construct a bridge between two mountain tops. Create a walled fortress that protects your resources and infrastructure. Build automated defenses around your resources. If your enemy destroys your resource extractors, your supply is cut off.

HighresScreenshot00014

· Colony Establishment - The task before players will be to work with their team to establish a new home for the human race. By building critical infrastructure to support a population, civilians will arrive and the team’s population will increase. The goal of the game is to successfully establish a colony. Population inflow is determined with via easy-to-master civilian needs management. Is the population unhealthy? Build a medical module. Are they unhappy? Build an entertainment center. Are they abandoning your colony for the enemy’s? Win them over by erecting statues, billboards, flags and other loyalty-building propaganda.

· Gameplay Choices - Players can choose to focus on creating and building, research, combat, reconnaissance, scouting, or commanding. The gameplay is open ended, and players will choose roles that best match their play style. Infiltrate an enemy city and destroy their infrastructure, or use propaganda to sway enemy civilians to join your side. Win a match without firing a shot, or completely bombard the enemy base and watch it crumble to the ground. It’s up to the team as to where they’ll focus their efforts; how they’ll choose to play.

· Story - The story behind Extroforge is rich, deep and full of mystery. What is this planet? Why is it uninhabited? Who used to live here? Throughout the exploration of regular gameplay, hints and relics will be discovered. At key points throughout the game, memories from this ancient planet will be discovered. Players will learn there's much more than meets the eye on this planet, and will be presented with quest-like choices that will determine whether the planet works with them, or against them. Are humans truly alone on this planet? Reminiscent of the kind of mystique surrounding movies like "The Matrix", and "Inception", and TV shows like "Lost". With tons of "Aha moments", players will spend as much time talking about the game as they will playing it.

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

While ExtroForge is first and foremost, a beautifully rendered game using traditional 3D mesh models to represent the terrain, players, creatures and buildings- we wanted player constructions to be unbounded by what elements we could pre-create for the game.

Early prototypes used mesh blocks that the player could create and connect to build all sorts of structures, large and small. Having our game engine track and manage each of these individual game objects would have worked on a small scale - but not in the multiplayer, massive world, massive construction game that we envisioned.


Our new (current) voxel engine is instead a kind of hybrid solution that reduces the game engine load by combining voxels into discrete mesh chunks in a sparse array - but does not use any special voxel rendering techniques like volume rendering/rasterization.


The current ExtroForge play area as about 4096x2048x4096 meters. When a player chooses to place a voxel building block (1 square meter) in the game, its home ‘chunk’ is determined for it. A chunk represents 4096 individual blocks (16X16X16 at the moment).

As a player decides to add a new block to the world, first we determine which ‘chunk’ it will reside in (based on it’s coordinates in world space). If that chunk does not yet exist in our collection of world chunks, we instantiate it. This ‘lazy’ initialization ensures that we don’t manage, track or update more objects in the game than we absolutely need to. This chunk consists of an internal data structure that represents the block types of the 4096 possible blocks that reside within it. We use some bitwise logic to help track certain key elements in order to make future calculations faster (like whether this block ‘touches’ the ground or not).

While the ‘chunk’ might seem like an abstract data storage mechanism, each chunk also represents a single mesh object of its own. As blocks are added to (or removed from) a chunk, its single mesh is updated (faces/triangles are recalculated) dynamically - along with its mesh collider that allows it to interact with the physical world. Internal (unseen) mesh ‘faces’ are removed so that we reduce rendering calculation time.


One of the things we decided early on was that we didn’t want the removal (or destruction) of blocks to result in ‘floating’ block islands with no visible means of support. While the chunk objects have colliders associated with them, they do not implement any real physics interaction (gravity/force). What we implemented was a check on every block removal. Essentially we do a flood-fill type search on all blocks surrounding the block being removed. If that block does not connect to the ground, we remove it from the voxel chunk representation and in its place, we instantiate a real-world block with physics properties (like gravity) that then cause it to fall to the ground. The logic is recursive so that removing a single block could result in huge sections of walls/structures falling to the ground.


In addition, we added some rudimentary ‘stickiness’ logic so that each islanded block that needs to fall has a ‘chance’ of being stuck to a neighbor, so that structures don’t collapse as a cascade of individual blocks - but instead of large chunks of building.


Another key element of our voxel construction world was the actual texturing of the blocks. In the example below, we have 10 different block types represented by 10 different unique textures - each texture combined into a single PNG atlas image.

As each block is added to the chunk, the 3d model uv coordinates are set to the appropriate coordinates in the combined texture. We wrote a custom shader to allow us to use the same logic for normal mapping, specular and gloss attributes.


One of the final key aspects that we had to deal with was block damage. Originally we tweaked our custom shader to apply a ‘decal’ texture representing cracks. More cracks meant more damage. It looked sorta like this:


We determined we could do better. We decided that we could combine another aspect of the block construction attributes - that of ‘solidification’. The original idea is that freshly placed blocks wouldn’t be as ‘strong’ as blocks that had ample time to ‘set’. This was originally denoted by a color shift from a blueish color (fresh) that would eventually fade as the blocks solidified. Instead we decided that block ‘strength’ would be denoted by it’s temperature.

When blocks are freshly placed, they are glowing hot red (and very weak). As they cool down, the red color fades and they grow in strength until they reach maturity (currently, about 30 seconds). When blocks take damage, they ‘heat up’ ...building up a red glow - until they burst apart at a threshold temperature.


In order to implement this, we again had to turn to custom shader logic so that we could offload the color change into the shader itself (and not have to manage/update in our main game loop). The shader would handle the shifting of the color from the current temperature as the block cooled. If a block’s temperature was adjusted externally (by damage from a projectile or explosion), the new temperature would be passed to the shader by use of the uv2 coordinates of the chunk mesh and the shader would take over from there - applying an emission effect (again using another atlas texture for emissions)


Technical details were a little trickier - we needed an easein/easeout formula/algorithm to take time as an input and temperature as an output. We also needed to have the same algorithm on our game engine side and on the vertex shader. On the game engine side we needed it to be able to determine what the current temperature was based on last update and when damage is applied. On the shader side, we need to apply emission settings based on current time compared to time when block was at it's highest temperature. So most traditional easein/easeout algorithms (to cool the blocks as per our decision) use conditional (if) statements. Conditionals are a performance bottleneck for shaders. … However, we were lucky enough to run across a Bezier curve formula that doesn't require them:


z=(t^2)(3-2t). It produces a nice S curve representing easein/easeout.

With large spherical AOE explosions, it is neat to see the different ‘damage’ (represented by temperature/color)


Stay tuned for part 2 - Collision Damage and Vehicle Rotation!

Interested in learning more about ExtroForge? Visit our website or follow us on Facebook and Twitter.

ExtroForge Terrain Generation

ExtroForge Terrain Generation

News 4 comments

ExtroForge uses a lot of different algorithms and formulas to determine how the terrain is generated. Today, our Team Lead Glen R. explains the process...

The Creatures of ExtroForge

The Creatures of ExtroForge

News

On the alien world of Sorteria, life is far different from what we know on Earth. Explore what creatures this new world holds!

ExtroForge Tech Demo #1: Voxel Destruction

ExtroForge Tech Demo #1: Voxel Destruction

News

Who doesn't enjoy blowing things up? Here's a demonstration of some of our voxel block destruction.

ExtroForge: Republic of Earth Soldier

ExtroForge: Republic of Earth Soldier

News

Today's feature is more concept art from our resident artist, Danny. Today, we have the soldiers from the other playable faction, the Republic of Earth...

Add file RSS Files
ExtroForge description and pitch

ExtroForge description and pitch

Other

A detailed look at the gameplay of EXTROFORGE. Extroforge takes players to a strange and mysterious alien world, where they must work with their teammates...

Post comment Comments
Omegakill
Omegakill

May I ask what will set this apart from the saturated "voxel" arena games that are coming out at the moment?

Reply Good karma Bad karma+1 vote
ledernierrempart
ledernierrempart

this sound great. i just have one request.

-> there were miising things in starforge (like good physics and animations) but there were one thing that really bothered me, the npc.
i really hope your aliens creatures will not be dumb as **** and not too ulgy as well as decent animated!

i don't know if lots of people are but i am very concerned about the npc in games. becasue they are the ones that can kill completly the immersion of a game.

Reply Good karma Bad karma+1 vote
ForgotMe
ForgotMe

Wow just wow.

Reply Good karma Bad karma+2 votes
CMRGames Creator
CMRGames

We aim to please! ;)

Reply Good karma+2 votes
Guest
Guest

Do you guys plan Linux support also?
Looks really cool.

Reply Good karma Bad karma+2 votes
CMRGames Creator
CMRGames

Linux is an option when we get farther down the road in development, but for now we will only support Windows and Mac. That doesn't mean we won't support it at all, but for right now, its too early to make that call. Thanks!

Reply Good karma+2 votes
MatthewSmith
MatthewSmith

This game looks pretty awesome! It reminds me of Starforge... I just hope the developers don't screw up like Starforge!
I sure hope it succeeds, cause I think this is a game I would really enjoy playing.

Reply Good karma Bad karma+3 votes
CMRGames Creator
CMRGames

Sorry for the late reply. Thank you for your kind words. We are full swing in development right now. We hope you enjoy playing it as well!

Reply Good karma+1 vote
N4HeavenCaller
N4HeavenCaller

The music and ambiance is rather calming :3 Odd when that's the first thing I notice in games but hell I had to comment lol

Reply Good karma Bad karma+4 votes
CMRGames Creator
CMRGames

Sorry for the late reply. Thanks! We have updated the music recently. It should be available on our SoundCloud soon.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X

Latest posts from @extroforge, @glenrhodes

Well then, what's the length of tweets these days? I don't see a number anymore, just a circle scrolly thing and I… T.co

Jul 11 2023 by glenrhodes

"🤖💭 Ever wonder if we'll someday use AI to name our kids? "Welcome to the world, little XÆA-12-Bit!" 😂👶… T.co

May 6 2023 by glenrhodes

"Report: Apple's AI and 'Siri' Efforts Hindered by Caution, Dysfunction - Slashdot The Information reports: Late l… T.co

May 4 2023 by glenrhodes

I've created an open-sourced book writing API that uses GPT-4 or GPT-3.5. Welcoming contributed to help make this a… T.co

May 1 2023 by glenrhodes

Linkedin.com

Apr 19 2023 by glenrhodes

A cool online tool to have your dreams interpreted! Dreamread.me

Mar 3 2023 by glenrhodes

Simplifying the process of using ChatGPT to make videos for YouTube. Youtu.be

Jan 27 2023 by glenrhodes

I'm loving the challenge of coding games and using AI to make them even better! #coding #AI #games

Jan 10 2023 by glenrhodes

What if OpenAI's real plan isn't their API, but to build a Google-killer?

Jan 9 2023 by glenrhodes

There is more than enough liquidity to go around for everyone. Let's leave competition just for sports.

Jan 9 2023 by glenrhodes