Jump to content
  • Advertisement
  • You can syndicate your blog to the GameDev.net community.
    Learn how here.

Blogs

 

plane game

I am making a game where two planes shoot at each other to start with. here is my code so far. #include <stdlib.h> #include <freeglut.h> #include <iostream> #include "SOIL.h" #include <math.h> GLuint texture[8]; const float PI = 3.14159; float rotate = 0.125f, vertical = 0.0001f, horizontal = 0.0001f, horizontal_one = 0.0001f, vertical_one = 0.0001f, rotate_one = 0.125f, up = 0.0001f, angle = 0.0f, screen = 0.001f, up_two=0.0001f; int flag[4] = { 0 }; static int animate; static int animate_two; bool checkCollide(float x, float y, float oWidth, float oHeight, float xTwo, float yTwo, float oTwoWidth, float oTwoHeight) { // AABB 1 float x1Min = x; float x1Max = x + oWidth; float y1Max = y + oHeight; float y1Min = y; // AABB 2 float x2Min = xTwo; float x2Max = xTwo + oTwoWidth; float y2Max = yTwo + oTwoHeight; float y2Min = yTwo; // Collision tests if (x1Max < x2Min || x1Min > x2Max) return false; if (y1Max < y2Min || y1Min > y2Max) return false; return true; } void SetupRC(void) { glClearColor(0.0f, 0.0f, 0.0f, 0.0f); glOrtho(-10.0f, 10.0f, -10.0f, 10.0f, 1.0f, -1.0f); } int LoadGLTextures() { texture[0] = SOIL_load_OGL_texture ( "enemyplane.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_POWER_OF_TWO ); if (texture[0] == 0) return false; texture[1] = SOIL_load_OGL_texture ( "enemyplane.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_POWER_OF_TWO ); if (texture[1] == 0) return false; texture[2] = SOIL_load_OGL_texture ( "bullet.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_POWER_OF_TWO ); if (texture[2] == 0) return false; texture[3] = SOIL_load_OGL_texture ( "coll.png", SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_POWER_OF_TWO ); if (texture[3] == 0) return false; glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); return true; } void handleSpecialKeypress(int key, int x, int y) { switch (key) { case GLUT_KEY_UP: if (rotate_one == 0.875f) { vertical_one -= 0.25f; horizontal_one -= 0.25f; } if (rotate_one == 0.625f) { vertical_one -= 0.25f; horizontal_one += 0.25f; } if (rotate_one == 0.125f) { vertical_one += 0.25f; horizontal_one -= 0.25f; } if (rotate_one == 0.375f) { vertical_one += 0.25f; horizontal_one += 0.25f; } if (rotate_one == 0.75f) { vertical_one -= 0.25f; } if (rotate_one == 0.25f) { vertical_one += 0.25f; } if (rotate_one == 0.5f) { horizontal_one += 0.25f; } if (rotate_one == 0.0f) { horizontal_one -= 0.25f; } if (vertical_one >= 9.5f) { vertical_one = 9.5f; } if (vertical_one <= -9.5f) { vertical_one = -9.5f; } if (horizontal_one <= -14.5f) { horizontal_one = -14.5f; } if (horizontal_one >= 4.5f) { horizontal_one = 4.5f; } break; case GLUT_KEY_DOWN: if (rotate_one == 0.875f) { vertical_one += 0.25f; horizontal_one += 0.25f; } if (rotate_one == 0.625f) { vertical_one += 0.25f; horizontal_one -= 0.25f; } if (rotate_one == 0.375f) { vertical_one -= 0.25f; horizontal_one -= 0.25f; } if (rotate_one == 0.125f) { vertical_one -= 0.25f; horizontal_one += 0.25f; } if (rotate_one == 0.25f) { vertical_one -= 0.25f; } if (rotate_one == 0.75f) { vertical_one += 0.25f; } if (rotate_one == 0.5f) { horizontal_one -= 0.25f; } if (rotate_one == 0.0f) { horizontal_one += 0.25f; } if (vertical_one >= 9.5f) { vertical_one = 9.5f; } if (vertical_one <= -9.5f) { vertical_one = -9.5f; } if (horizontal_one >= 4.5f) { horizontal_one = 4.5f; } if (horizontal_one <= -14.5f) { horizontal_one = -14.5f; } break; case GLUT_KEY_RIGHT: rotate_one += 0.125f; if (rotate_one >= 1.0f) { rotate_one = 0.0f; } break; case GLUT_KEY_LEFT: rotate_one -= 0.125f; if (rotate_one <= -0.125f) { rotate_one = 0.875f; } break; } glutPostRedisplay(); } void shoot() { up += 0.5f; if (up >= 15.0f) { animate = 0; up = 0.0f; glutIdleFunc(NULL); } glutPostRedisplay(); } void shoot_two() { up_two += 0.5f; if (up_two >= 15.0f) { animate_two = 0; up_two = 0.0f; glutIdleFunc(NULL); } glutPostRedisplay(); } void handleKeypress(unsigned char key, int x, int y) { switch (key) { case 27: exit(0); break; case 's': if (animate) { glutIdleFunc(shoot); } else { glutIdleFunc(NULL); } break; case ' ': if (animate_two) { glutIdleFunc(shoot_two); } else { glutIdleFunc(NULL); } break; case 97: rotate += 0.125f; if (rotate >= 1.0f) { rotate = 0.0f; } break; case 100: rotate -= 0.125f; if (rotate <= -0.125f) { rotate = 0.875f; } break; case 119: if (rotate == 0.875f) { vertical -= 0.25f; horizontal += 0.25f; } if (rotate == 0.625f) { vertical -= 0.25f; horizontal -= 0.25f; } if (rotate == 0.125f) { vertical += 0.25f; horizontal += 0.25f; } if (rotate == 0.375f) { vertical += 0.25f; horizontal -= 0.25f; } if (rotate == 0.75f) { vertical -= 0.25f; } if (rotate == 0.25f) { vertical += 0.25f; } if (rotate == 0.5f) { horizontal -= 0.25f; } if (rotate == 0.0f) { horizontal += 0.25f; } if (vertical >= 9.5f) { vertical = 9.5f; } if (vertical <= -9.5f) { vertical = -9.5f; } if (horizontal <= -4.5f) { horizontal = -4.5f; } if (horizontal >= 14.5f) { horizontal = 14.5f; } break; case 120: if (rotate == 0.875f) { vertical += 0.25f; horizontal -= 0.25f; } if (rotate == 0.625f) { vertical += 0.25f; horizontal += 0.25f; } if (rotate == 0.375f) { vertical -= 0.25f; horizontal += 0.25f; } if (rotate == 0.125f) { vertical -= 0.25f; horizontal -= 0.25f; } if (rotate == 0.25f) { vertical -= 0.25f; } if (rotate == 0.75f) { vertical += 0.25f; } if (rotate == 0.5f) { horizontal += 0.25f; } if (rotate == 0.0f) { horizontal -= 0.25f; } if (vertical >= 9.5f) { vertical = 9.5f; } if (vertical <= -9.5f) { vertical = -9.5f; } if (horizontal <= -4.5f) { horizontal = -4.5f; } if (horizontal >= 14.5f) { horizontal = 14.5f; } break; } glutPostRedisplay(); } void drawcollision_one() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[3]); glBegin(GL_POLYGON); glTexCoord3f(0.0f + screen, 0.0f, 0.0f); glVertex3f(0.5f, -0.5f, 0.0f); glTexCoord3f(0.167f + screen, 0.0f, 0.0f); glVertex3f(0.5f, 0.5f, 0.0f); glTexCoord3f(0.167f + screen, 1.0f, 0.0f); glVertex3f(-0.5f, 0.5f, 0.0f); glTexCoord3f(0.0f + screen, 1.0f, 0.0f); glVertex3f(-0.5f, -0.5f, 0.0f); glEnd(); glDisable(GL_TEXTURE_2D); } void timer(int val) { screen += 0.1667f; if (screen >= 1.0f) { screen = 1.0f; } glutPostRedisplay(); glutTimerFunc(500, timer, 0); } void coll_plane_one() { //draw bullet float x = 5.0f+horizontal_one; float y = 0.0f+vertical_one; float oWidth = 0.125f; float oHeight = 0.125f; //draw plane float xTwo = -5.0f+horizontal+up_two; float yTwo = 0.0f+vertical; float oTwoWidth = 1.0f; float oTwoHeight = 1.0f; if (checkCollide(x, y, oWidth, oHeight, xTwo, yTwo, oTwoWidth, oTwoHeight) == 1) { drawcollision_one(); } } void drawplane_one() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[0]); glBegin(GL_POLYGON); glTexCoord3f(0.0f + rotate, 0.0f, 0.0f); glVertex3f(-5.5f + horizontal, -0.5f + vertical, 0.0f); glTexCoord3f(0.125f + rotate, 0.0f, 0.0f); glVertex3f(-5.5f + horizontal, 0.5f + vertical, 0.0f); glTexCoord3f(0.125f + rotate, 1.0f, 0.0f); glVertex3f(-4.5f + horizontal, 0.5f + vertical, 0.0f); glTexCoord3f(0.0f + rotate, 1.0f, 0.0f); glVertex3f(-4.5f + horizontal, -0.5f + vertical, 0.0f); glEnd(); glDisable(GL_TEXTURE_2D); } void drawplane_two() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[1]); glBegin(GL_POLYGON); glTexCoord3f(0.0f + rotate_one, 0.0f, 0.0f); glVertex3f(5.5f + horizontal_one, -0.5f + vertical_one, 0.0f); glTexCoord3f(0.125f + rotate_one, 0.0f, 0.0f); glVertex3f(5.5f + horizontal_one, 0.5f + vertical_one, 0.0f); glTexCoord3f(0.125f + rotate_one, 1.0f, 0.0f); glVertex3f(4.5f + horizontal_one, 0.5f + vertical_one, 0.0f); glTexCoord3f(0.0f + rotate_one, 1.0f, 0.0f); glVertex3f(4.5f + horizontal_one, -0.5f + vertical_one, 0.0f); glEnd(); glDisable(GL_TEXTURE_2D); } void drawbullet_one() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[2]); glPushMatrix(); if (rotate == 0.25f) { angle = PI / 2.0f; } if (rotate == 0.75f) { angle = (3.0f*PI) / 2.0f; glTranslatef(0.0f, -1.0f, 0.0f); } if (rotate == 0.5f) { angle = PI; glTranslatef(-0.55f, -0.5f, 0.0f); } if (rotate == 0.0f) { angle = 0.0f; glTranslatef(0.55f, -0.5f, 0.0f); } if (rotate == 0.125f) { angle = PI / 4.0f; glTranslatef(0.35f, -0.15f, 0.0f); } if (rotate == 0.375f) { angle = (3.0f*PI) / 4.0f; glTranslatef(-0.35f, -0.15f, 0.0f); } if (rotate == 0.625f) { angle = (5.0f*PI) / 4.0f; glTranslatef(-0.35f, -0.75f, 0.0f); } if (rotate == 0.875f) { angle = (7.0f*PI) / 4.0f; glTranslatef(0.35f, -0.75f, 0.0f); } glTranslatef(0.0f, 0.5f, 0.0f); float r = sqrt(pow(1.0f, 2) + pow(1.0f, 2)); glBegin(GL_POLYGON); glTexCoord3f(0.0f, 0.0f, 0.0f); glVertex3f(-4.9375f+cos(angle)*r*up+horizontal, 0.0625f+sin(angle)*r*up+vertical, 0.0f); glTexCoord3f(1.0f, 0.0f, 0.0f); glVertex3f(-5.0625f+cos(angle)*r*up+horizontal, 0.0625f+sin(angle)*r*up+vertical, 0.0f); glTexCoord3f(1.0f, 1.0f, 0.0f); glVertex3f(-5.0625f+cos(angle)*r*up+horizontal, -0.0625f+sin(angle)*r*up+vertical, 0.0f); glTexCoord3f(0.0f, 1.0f, 0.0f); glVertex3f(-4.9375f+cos(angle)*r*up+horizontal, -0.0625f+sin(angle)*r*up+vertical, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); } void drawbullet_two() { glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture[2]); glPushMatrix(); if (rotate_one == 0.25f) { angle = PI / 2.0f; } if (rotate_one == 0.75f) { angle = (3.0f*PI) / 2.0f; glTranslatef(0.0f, -1.0f, 0.0f); } if (rotate_one == 0.5f) { angle = 0.0f; glTranslatef(0.55f, -0.5f, 0.0f); } if (rotate_one == 0.0f) { angle = PI; glTranslatef(-0.55f, -0.5f, 0.0f); } if (rotate_one == 0.125f) { angle = (3.0f*PI) / 4.0f; glTranslatef(-0.35f, -0.15f, 0.0f); } if (rotate_one == 0.375f) { angle = PI / 4.0f; glTranslatef(0.35f, -0.15f, 0.0f); } if (rotate_one == 0.625f) { angle = (7.0f*PI) / 4.0f; glTranslatef(0.35f, -0.75f, 0.0f); } if (rotate_one == 0.875f) { angle = (5.0f*PI) / 4.0f; glTranslatef(-0.35f, -0.75f, 0.0f); } glTranslatef(0.0f, 0.5f, 0.0f); float r = sqrt(pow(1.0f, 2) + pow(1.0f, 2)); glBegin(GL_POLYGON); glTexCoord3f(0.0f, 0.0f, 0.0f); glVertex3f(5.0625f + cos(angle)*r*up_two + horizontal_one, 0.0625f + sin(angle)*r*up_two + vertical_one, 0.0f); glTexCoord3f(1.0f, 0.0f, 0.0f); glVertex3f(4.9375f + cos(angle)*r*up_two + horizontal_one, 0.0625f + sin(angle)*r*up_two + vertical_one, 0.0f); glTexCoord3f(1.0f, 1.0f, 0.0f); glVertex3f(4.9375f + cos(angle)*r*up_two + horizontal_one, -0.0625f + sin(angle)*r*up_two + vertical_one, 0.0f); glTexCoord3f(0.0f, 1.0f, 0.0f); glVertex3f(5.0625f + cos(angle)*r*up_two + horizontal_one, -0.0625f + sin(angle)*r*up_two + vertical_one, 0.0f); glEnd(); glPopMatrix(); glDisable(GL_TEXTURE_2D); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glGenTextures(8, &texture[8]); drawplane_one(); drawplane_two(); drawbullet_one(); drawbullet_two(); coll_plane_one(); glutSwapBuffers(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition(500, 300); glutInitWindowSize(800, 600); glutCreateWindow("1945"); glutTimerFunc(500, timer, 0); glutSpecialFunc(handleSpecialKeypress); glutKeyboardFunc(handleKeypress); glutDisplayFunc(display); SetupRC(); LoadGLTextures(); glutMainLoop(); return 0; }  

phil67rpg

phil67rpg

 

DOOM: Placeholders

Currently, the only "playable" level is still full of placeholders - I'm still hoping for having the game finished on 18th, but we will see. In worst case - there might be some place holders left (while the game would still be playable). In the meanwhile I have added: Full physics (based on Bullet), not just character controllers, but even rigid bodies are technically supported (I'm still not sure whether I will do anything with them) Ability to control behavior of entities (doors, elevators and such are possible - but I don't think I will have enough time to make art for those, so we might be limited here) Improved the speed of dynamic BVH building by about factor of 10+ (by simply going through my code and removing dumb things) Get rid of most of the limitations (like total texture size was originally limited to just 8192x8192 texels, technically this is much higher now) Finished some sort of player movement I'm kind of satisfied with I'm realistic, the competition ends in about 2 days (and as most of us - I still have to be at work during those). I personally will be glad if I manage to make the scope I wanted for proof of concept demo - that includes: Simple menu (New Game/Exit) Single level Single type of enemy Single weapon Player can die in the game and player can win the game Some sort of Doom-ish UI Some advanced ray tracing effect or two I know this isn't much (and is most likely barely covering the scope for the challenge). In the meanwhile - behold - the placeholders (and no that 0.44 GRay/s is not joking - I'm currently limited by performance of actually displaying the buffer, not ray tracing nor BVH updates at all)!

Vilem Otte

Vilem Otte

 

Frost Bite Update

Only weeks away from the launch of Frost Bite and I’m getting pretty excited:) I’ve been expanding the map because it was just a little too small which impacted the play time negatively. The new map is so huge in comparison to the old one. It’s like 6X as large. The only thing I don’t like about it is that the new map is less maze like than the old one. Which I’m going to change somewhat but there are going to be some big open areas as well. I’ve been telling more people in person about it. I’ve been getting some pretty positive responses which makes me happy. It feels a little weird to have so many details finalized. Yesterday I got the Itch.Io page for it set up. I’ve got so many little details still to do on it. Increasing the size of the map has added quite a bit of work but I think it will be better for players. The post Frost Bite Update appeared first on Gilded Octopus.
View the full article

GameDev - Doom Challenge - D.O.A

Sadly I've decided not to go ahead with this game challenge as planned. On Friday I finally finished my corporate year end for tax season and I have the rest of the week booked up. Prior to that I opened a new division for my company around the same time as this challenge and that has taken most of my actual time.... then when I did get free time I wasn't too inclined to sit and work on anything to be honest. I did manage to complete a weapon (meh.. wasn't too happy with it due to the time spent) and some environmental assets (modular walls, floors) and textures, but beyond that I would still have to make enemies, texture the enemies, rig the enemies, then program and level test. No way I can do that in 3 days or even a week with my current availability so I'm just going to pull the plug on this one. I'm thinking I'm going to just take a break from this all until I get my new business operations settled in. Any future timed challenges (with deadlines) I most likely will not post about unless I actually have some kind of game play video to showcase which means I was able to devote enough time as it's extremely hard for me to predict a steady schedule with work and family commitments. Heck! I still have to create my 3D Chess music track as that game has been done since June... I'm looking forward to playing other people's entries. Good luck!  

Rutin

Rutin

Pixel Devlog #3- Monsters and Mythos!

Devlog #3- Monsters and Mythos! October 15th, 2019 Connect with us on Social Media: Facebook: www.facebook.com/TumultuousProductions Twitter: https://twitter.com/TumultuousGame Join our Discord Server: Join the Yami Discord Want to Join the Project? Fill out our google forms Online Application  For more about the Studio : About Us Tumultuous Productions Check out our website for Yami! https://tumultuousproductions.site/index2.html For more about Yami: Our Game: Yami   Weekly Updates Week 3: More Creatures within Kinfallen Forest Here is a showcase of two more enemies you will encounter in the Kinfallen Forest, including a brief description and concept art created by our talented artists:  Scavenger: Thought by some to be corrupted descendants of those lost within Kinfallen Forest, the scavenger hunts for trinkets and valuables scattered along the undergrowth of the forest. It carries its belongings in an overstuffed satchel upon its back, clinging to the past memories these items possess. When spotted, they will back away and only attack when threatened, but will become emboldened when other members of its kind are nearby.
  Uprooter:  A subterranean creature of the forest, the uprooter dwells mainly within the vast root system of Kinfallen Forest, digging burrows and creating mounds of soil. Its nose resembles a forest flower, tricking passersby into a sense of security. When a traveler encroaches on its territory, it will jump out of the ground and attack with its powerful claws, sometimes throwing mounds of dirt and rock in defense.    Weekly Member Spotlight: This week, I metaphorically ‘sat down’ with Arabesco, one of our artists on the team and an incredibly talented pixel-art animator. I asked her about her process and working style to produce such amazing animations for Yami. Thanks again to Arabesco for answering our questions! Q: What is your artistic background?   A: “I began my journey into art very early on - I was around 2 when my cousin drew a cat on paper. Enchanted by the idea of creating something in paper, I decided to learn how to draw. Eventually I began to draw digitally as well and thus became fascinated with the idea of making artwork for a game. For now I am doing Visual Arts as a major in college and will possibly get a minor in graphic design.”
  Q: How did you get inspired to make art for a video game?   A: “When I was 14 or so, I found out that people could make their own games relatively easily and publish them in the internet. The catch was that you needed to make your art yourself. I did not know about sites that let you use their material for free. So I decided to do game art and thus live and learn, reading pixel art articles and whatnot as well as staring at spritesheets while figuring out how do The Experts do it.”   Q: How do you animate your art?   A: “When it comes to pixel art, I use an approach that to an extent is similar to rigging/puppeteering: putting the moving parts in their layers and moving them with edits to maintain consistency. This allows for a faster workflow. Outside of it I tend to do hand drawn animations in krita.”
  Q: Tell us briefly about yourself!   A: “I am an individual. Living in some south american country, close to the sea, I often either work on the many things I have or just stand there. Menacingly.”
  Q: What is your process for making art?   A: “I first have an idea. Then I try to think of the many ways to approach said idea. Then I materialize the concept. Once I feel it is satisfactory, I put it out.”   ~Look for our post Next week where we show concepts for the Yami planet of Raum, and concept art for one of our NPCs~   Check out our new Website: https://tumultuousproductions.site/index2.html   Remember to: Connect with us on Social Media: Facebook: www.facebook.com/TumultuousProductions Twitter: https://twitter.com/TumultuousGame Join our Discord Server: Join the Yami Discord Want to Join the Project? Fill out our google forms Online Application  For more about the Studio : About Us Tumultuous Productions Check out our website for Yami! https://tumultuousproductions.site/index2.html For more about Yami: Our Game: Yami

TumultuousProductions

TumultuousProductions

The beginnings of a solar system

Hello, I am alive. I've actually been split between projects, and I have been a little burnt out, but I am back. I decided to not force the player to only have one colony. So that means we need a solar system. In the original game, there was a squad grid that you could choose where to build colonies, and only on specific slots. However, I wanted something a little more modern. A solar system with a hex grid surrounding the planets, and you could choose from orbit where to pick. I've spent probably two weeks researching rotation and procedural planets. Shout out to Sebastian Lague and his amazing tutorial on Procedural planets on youtube that I used as a base. I couldn't find any tutorials on grids and rotating a planet, so I've had to spend the past two weeks with trial and error to figure this out, but I've finally done it. And it rotates! So if I click on a hex, it spins the planet to face the camera onto the hex I clicked on. Next step: Make the grids transparent, add some UI to pop up when a hex is clicked, have grid coordinates appear for the hexes, and start building a solar system to explore.

KrisWolfe

KrisWolfe

 

All Your Base: Building An Empire

Hello there, it's Adam again with another post about Rank:Warmaster's game systems! This time I'll be talking about bases, buildings and bots.

Base construction and management is a cornerstone of gameplay. You'll research technologies, extract and refine resources which become the ships and buildings that allow you to explore the solar system, control territory and conquer your rival corporations. But it all starts with the humble construction bot.

The game's tutorial will start you off with a single construction bot and walk you through the steps needed to build a fully functional base. The construction bot functions as an general-purpose worker; it mines ore and then processes the ore into refined materials, which are then used to construct buildings. Additional construction bots can be made to speed up construction or to expand your reach by starting a new base at another site.

Your industrial capacity is determined by three buildings. A Mine will extract ore from the ground. The ore is then send to a Refinery to be processed into refined materials. These materials can then either be used by construction bots to create additional buildings, or sent to a Factory to fabricate ships and construction bots. A construction bot will work far more efficiently when supplied with refined materials that it doesn't have to spend the time extracting and refining itself. Excess ore and refined materials can be stored in a Warehouse for future use.

All of these buildings require power, which is provided by a Generator. The larger the base and the more advanced the buildings, the larger the power requirements and thus more or more advanced Generators are needed. Turret platforms can be constructed and installed with any weapon you can produce and will fire on enemies within range, protecting your base from hostiles. Ships constructed in your factory can be assigned guard duty and will patrol around your base and intercept enemies.

Last but not least, Research Labs will produce new technologies, ship components and building designs. Each lab can research a separate project, or multiple labs can collaborate on a single project with diminishing returns to speed up the process.

A large portion of the strategy in base management will come from assessing your current situation and deciding where to spend your time and resources. If you aren't threatened by hostile neighbors, putting more into research and development will give you an advantage over your rivals in the future. If you're anticipating an attack, increasing your industrial output to boost fleet production or building additional defense turrets may take priority.  Building additional remote bases can extend your reach and provide early warning of incoming attacks, but will be a resource drain at first until they become self-sufficient.

If managing any of these systems is undesirable, there's an AI Manager that can be assigned to assume control. Base construction and research can both be automated to allow the player to focus on the aspects of the game they enjoy.  This can be advantageous as your empire grows, letting the AI manage your remote bases lets you focus on grand strategy instead of minutiae.

Rank: Warmaster will continue to increase in scope, adding new building types such as sensor towers and dome shield projectors that expand your capabilities and provide new ways to play. Signing off! Original post blogged on Rank: Warmaster Dev Blog.
View the full article

LordArt

LordArt

 

A Week in WebAR: London’s Waterloo Station, Porsche, Clarins, EVA Air and a Spider-Man: Far From…

A Week in WebAR: London’s Waterloo Station, Porsche, Clarins, EVA Air and a Spider-Man: Far From Home Activation A Week in WebAR is a new 8th Wall blog series that highlights innovative brand experiences created by our customers and partners. https://medium.com/media/58fd9e884062be301494fc3705b95884/hrefThe 2020 Porsche Taycan Porsche is running a print advertisement that appears in the September and October issues of German magazine Auto Motor Sport for the 2020 Porsche Taycan, which serves as an image target for a WebAR experience. Once activated, the ad triggers a realistic 3D model of the Porsche Taycan to appear. 2020 Porsche TaycanUsers can scale, rotate, change the paint color, and even change the hub caps of the vehicle before being directed to the Porsche website to learn more. Vienna-based digital agency Innovation.rocks is behind the WebAR ad. EVA Air Teleports Us to Bangkok International airline EVA Air takes us to Thailand with its latest WebAR activation, which transforms a simple print ad into a portal to a busy Bangkok waterway. The full page advertisement appears in the September issue of Fast Company and was created by agency, Tool. Fast Company (Sept. 2019 Issue)The ad itself is actually an image target which triggers a 360-degree video to play, giving the viewer the perspective of a passenger sitting in boat. Since the video itself is immersive, the viewer is invited to peer into the magazine at various angles to explore the scene around them. Trainline Activation Takes Over London’s Bustling Waterloo Station Trainline, a UK platform for finding and booking train tickets, installed a series of 16 WebAR-activated posters around Waterloo Station which transform into live departure boards when viewed through a smartphone. Produced by digital agency Byte, the AR timetables also reveal a comparison of CO₂ emissions generated by each journey when traveled by a car versus train. Take a look: https://medium.com/media/be1e8f78f1ef5c7c37fb282dd224619d/hrefSpider-Man: Far From Home In partnership with Walmart, Sony Pictures launched a WebAR activation for the DVD and VUDU release of Spider-Man: Far From Home. Produced by agency Ignite, the activation initially uses the front camera to apply a face filter to the user, then switches to the back camera where 3D drones appear. Spider-Man: Far From Home WebAR experience.The user is instructed to use voice commands to launch drones and explore their surroundings to collect the data for Peter Parker, MJ and Quentin Beck. See if you can complete the mission — give it a try here! Enter the House of Clarins Cosmetics and skincare brand Clarins is known for the premium plant-based formulas behind its popular line of makeup and serums. With its House of Clarins pop-up in Singapore, visitors had the opportunity to explore activities, learn about products and play an interactive WebAR game. House of Clarins pop-up in SingaporeProduced by agency Threedom, the WebAR experience highlights the company’s use of natural ingredients by sending users on a mission to capture the exotic ingredients found in Clarins Double Serum. Once the user captures the ingredients, they are sent to learn more about Clarins. Try it out for yourself here! On the hunt for ingredients at 8th Wall HQ.Did you try any of this week’s activations? Show us on Twitter 📸 @the8thwall. A Week in WebAR: London’s Waterloo Station, Porsche, Clarins, EVA Air and a Spider-Man: Far From… was originally published in 8th Wall on Medium, where people are continuing the conversation by highlighting and responding to this story.
View the full article

8thWallDev

8thWallDev

 

Some tech blabla

I made a few Projects with networking and stuff, also on work i have alot to do with sockets and network streams, so i think and hope i picked a good setup for my task. Client Side The Client is made with Unity by using its onboard Tilemap and Sprite system. I decided for unity because i wanted to be able to reuse code from the server, specially the network code and some stuff. Server Side Authentication is managed via an extra Authserver that accepts Rest API calls on an HTTPS address, after authentication is done, the client will connect to a World server, the address of this server and some kind of token to identify the client is in the response of the API call. The Authentication server is written in C# by using .net Core 3 and ASP core The world server is also written in C# with .net Core 3 but without ASP, it shares some database code with the auth server but its an own process. Database the database is curently RethinkDB a Document oriented database that i used for some projects and anyhow like alot, i will see how it performs for that task. But i layered all database code to an Interface, so i could replace the database to any other DBMS, specially if its also document oriented it should be very easy to implement. The communication between the client and the world server is done with LiteNetLib, because its works on .net core and also in Unity. currently the netcode is not so well layered of the game or server code, but switching to another network library should also be possible as long as i can write and read bytes from/to the stream. I dont use any object serialisation for the netcode, because im just not a big fan of all that metadata coming through with serialized objects. Full authorative Servers Any player action is executed on the server, so if a player losts connection he cant do anything. If example a player wants to move from A to B, then just a message preamble and a position is being transferred, and the answer is that the Player Entity is now moving from A to B, if this is even possible. Same with buy, sell and any other player Actions. World Servers Each world server represents a Game world that can be imagined as a continent or a big Island If you travel to another continent (by ship) then you technically connect to another world server.   here some image that i just made in mspaint:

Salmakis

Salmakis

 

What is MTO?

MTO is the name of a project that i am working on since a few weeks, its just a describing name for the project. It means "Massive Trader Online". you might think: Oh noes, another MMO as first project, yes thats maybe right. But i am not creating an 3d Action MMO, its just a game about traveling a 2d pixel world with a 2d pixel char and transport goods from A to B to make money. I am from Germany, and we Germans love trading and economic Games (maybe you know about games like Patrician Series, Die Fugger, Serf City, Anno Series or Guild Series). The World consists of 2d Tiles, i want it to feel like moving on a "overworld" map in old RPGs. Below are some current screenshots. the Tile are not the best since im not a Pixel artist.

Salmakis

Salmakis

Nightfall - DevBlog #2

NIGHTFALL DEVBLOG #2 I'd like to start this post by saying - This week has been absolutely insane! In just over a week's time since the last DevBlog, we've reached over 100 members in our Discord community, added three new team members to our team at Venatus, and broke ground on terrain generation... successfully. Yup! You read that correctly. We have actual world generation, in Nightfall, in less than two weeks and this time we'll have actual gameplay to share with you! In a big part, this is due to some of our additions to the team and the hard work that the entire team has been putting in for all of you in the past couple of weeks. Combined through Discord, our posts here on GameDev.net, Twitter, and Patreon, there are over 1.5 thousand people who are interested in Nightfall. This is an insane number, especially after the short amount of time that we've been at this... and it's going up every day. This is a driving force for us and the support people have shown us is inspiring! We are super motivated by the engagement we've had with you guys and are loving hearing your suggestions and answering your questions on the Discord!  Now with all that said, I'm sure you're all looking forward to hearing more about how Nightfall is coming along, and we can't WAIT to share it with you. In today's DevBlog, we'll take a look at some more concept art for features and biomes, discuss terrain generation, take a look at some of the new models and art for Nightfall, learn more about all of us over here in the Dev Team, and get a first look at the Nightfall pre-pre-alpha gameplay! Wow! That was a mouthful. That's enough of an introduction, let's get started! What is Nightfall? We discussed this last DevBlog, and we'll keep it brief, but in case you aren't coming from our Discord or our previous DevBlog on GameDev.net, here's the gist of what Nightfall is all about. "Nightfall is a block/voxel type game being developed by Venatus with influence from Minecraft, Castle Miner Z, and other predecessors. It is a base-defense open world sandbox game that pits you against dynamic and dangerous enemies along with other players. You can work together or go it alone to try and survive the harsh nights of Nightfall. The game is an open world sandbox where Players can do whatever they want. To survive, players will need to gather resources and construct a shelter. However, when night falls, things get much more difficult. Players will need to defend against difficult dynamic enemies and survive to the next morning." Yes, that's the same blurb as last time, and if you want more information than that, click here to head over to our Discord or here to read last week's post for more information. I don't want to bog you down with repeat information, so this is the last time we'll add this basic description of the game to the post. Yay! Biome Concept Art The Badlands Take a look at this beauty. Another incredible concept piece by Crimmy. These are the badlands, and yes, they're bad to the bone. No literally... You'll actually find large skeletons here of creatures that may have roamed the land. This is a pretty unforgiving biome, but the terrain generation here will be miles different from anything you've seen before. We're aiming to have huge spikes (as seen above), large skeletal remains, and sheer cliffs that drop far below. The consistency of the rock/stone you'd find making up these spikes would be that of volcanic rock. A good way to picture this biome is to take a look at this scene from the Lion King, and add some more pointy outcroppings of rock.  Unique biomes like the Badlands are something we are working hard to implement into our world generation. We have a LOT of new mechanics to our world generation that you probably won't be expecting, and we can't wait to share more of them here. Our goal is that exploring the world of Nightfall will not feel monotonous or empty, and that you'll be rewarded with fantastic sights and new materials for your travel. This applies to our surface world, but also the depths below... but that's for a future DevBlog! Door and Entrances Who doesn't like to make a dramatic entrance? Say goodbye to the days of doors that are two blocks tall and one block wide (although, we will have those as well) and hello to the grand entrances of Nightfall. We're currently working on a concept feature for larger doors and entrances in the game. This means doors, hatches, and gates that are not just you usual proportions. Crimmy took some time this week to concept out a bunch of possible entrances you may see in Nightfall. We want to allow for you to not have to limit your doorways to be a certain size. This will make allowing creatures larger than the average human into a building easier, but also make for more impressive builds. We're also planning on incorporating it into our dungeon system to allow for epic entryways into the horrors of Nightfall. Barn Doors (Sliding) Still don't understand what I mean? Take a look at these sliding barn door options. If you have a barn for your livestock, it may be smart to use these doors to seal the barn up during the winter, but still allow for animals to pass through easily when it's time to take them back out for the warmer weather. These doors not only look good, but they'll actually have functionality as well. And just like in real life, these barn doors may be higher than your head compared to the average sized door. Speaking of average sized doors... Other Door Types Nightfall is not without those either. Here's a concept for a more reinforced door and even a jail door in case you want to lock up your friends or even your enemies. We're open to suggestions for all of these doors or even individual features for each method of entrance. Should the jail door require a key? Can the flaps on the reinforced door be opened to pass items through or take a peek at who is there? You tell us! We want to have unique options for the player that provide both use and visual appeal. Take this garage type door as another example. A player might be able to grab this door and pull it up for a vertical entryway. This might take up less space and would be a good way to take or move larger things out of your base. It also looks pretty reinforced. Imagine gearing up with your squad and popping out of one of these babies to take on the approaching horde.  Don't worry, we didn't forget dungeon doors either. We want to have unique entrances to some of the larger non-player built structures as well. These could be harvested by the player after completing the dungeon to be used in builds or as decoration, but would also provide a certain vibe to the entrances of a crypt or a foreboding castle. We have a lot of plans for our dungeons, but that's something we'll touch more on in a later DevBlog.  In the image above you can see some concepts for fences (A, B, D) and fence gates (C, E). Obviously there's still a lot more ways we plan to take these structures, but this is another example of the variability we want to provide for you in the world of Nightfall.  Trapdoors, Hatches, and Other Entrances Coming in last but certainly not least for our entrance concepts, we have hatches, trapdoors, and other cool entrances. In image A, and B, we've got some concepts for a different kind of hatch -- traps. These could consist of spikes or launch pads and be used on players, enemies, or maybe even other things. The player would be able to conceal these in a hatch similar to some of our trapdoors which is why we included them here. In Images C, D, and E, you can seem some examples of wooden hatches/trapdoors, and in F, G, and H, you can see something similar done with stone. Specifically if you look at image G, you can see that we're currently tossing around the idea of doing some more hidden entrances as well, like the fake rock. Once again, these fantastic pieces of concept art were done by our very own, Crimmy. We actually worked on these while answering questions on our brand new Developer Twitch, which you can check out here. I'll talk more about this at the end of the DevBlog, but we'll be doing more live streams here in the future where we work on Nightfall, answer questions, and hang out with the community! Tools/Weapons This week, Alde spent some time working on some placeholder tools and weapons for us. Unlike your typical block game, Nightfall has a lot of unique tools. While Nightfall does have your basic four (Shovel, Axe, Pickaxe, Sword), don't limit your thinking to just the generic set. We're working on some concepts for other weapons, tools, and equipment that can be used for various purposes. We will have various tiers for the tools/weapons depending on the type of material it is made with, and ways to increase their strength, efficiency, and ability. This is something we'll talk about more in a future blog post. Pictured above from left to right, you can see our placeholder model for a; Shield, Spear, Sword, Knife, Hoe, Pickaxe, Hatchet, and Shovel. Keep in mind that these are just placeholder models that we'll be using while we develop the functionality of these weapons and tools and that eventually the actual model will reflect what tier you are using. What this means is that basic tools will app ear more primitive while higher tier tools will be much more refined. Take a look at some of these placeholders closer up below; Gameplay Well, well, well... the moment I'm sure you've all been waiting for is here! How far along is the gameplay in Nightfall? Let's take a look.  (Pre-Pre-Alpha) But first, an important disclaimer. What you're about to see is a pre-PRE-alpha version. There's plenty of bugs and a lot to be done, but we're showing you this now for two reasons. The first reason is the initial promise we made to ourselves and to you of being honest developers. This is truly where we are at in the development process, and we want to show you. The second is -- we're proud of what we've accomplished in such a short time and want to share it with you all who have been asking us every day for the past two weeks how much progress we've made. Is this the complete game? No. Is it a start? Hell yes. In less than two weeks we've created a fairly robust world generation system that's getting better every day, and are already able to do so much of what we thought would take us months to accomplish. This is a good sign and this is the foundation for us to create Nightfall on. Back to the disclaimer, however. Please remember that anything you see here is subject to change and is NOT A PUBLIC build. No, you can not yet play the game, and when a build is ready for public testing we will first release it to our Patrons over on Patreon. With all of that out of the way, here is what we've been working on. World Generation For starters, we've been tackling arguably the largest beast first, world generation. This past week, Jacob and Owen spent time on implementing the world generation system into Nightfall. Right now, we're focused on the basics, which is making the world appear, be modifiable, and save the modifications that players make. We're making sizable progress with this and getting closer and closer to being able to implement complex biomes and terrain. Right now, we've got a few basic blocks like grass, dirt, stone, and sand implemented into our generation engine. We also have a rudimentary form of water, but there is still quite a lot of work to be done in fluid physics. The world generation system is already nearly infinite in the same sense that Minecraft is, which is an impressive feat in itself.  Over the weekend, Jacob and Shelby really cracked down on getting our current gameplay builds and world generation builds merged together. At this point we've successfully implemented both of those and are working on stabilizing everything and making the terrain and player flow smoothly. We did have some issues with terrain clipping and weird generation at the start though that ended up being quite... interesting. (This GIF is from a very early build that is now vastly out-dated. Textures in this video are not ours and were purely for testing, we now have our own textures as shown previously) Overall, the entire system is built to be heavily expandable and within the next few DevBlogs we're hoping to share more biomes and world generation both surface and underground! We have some custom textures on the blocks in our world now which you can see in some screenshots or below, although they're very tiny here. We're currently deciding what size our textures will be (16x16, 64x64, etc) so if you have any opinions or suggestions, let us know! The Player  Our original alpha player you might have seen pictures or clips of is now dead. Long live alpha blue... He is now a Discord emote! His replacement who is still unnamed is now being implemented into the game. We're not entirely sure the direction we want to take character creation in yet, but we've fallen in love with this goofy blockhead made by Trevor! He's making his way into our current build and we're working on some new animations for him.   POV We're working on a First Person Perspective AND a Third Person Perspective for Nightfall. You can check out the basic implementations of both of those below.  Our Player's arms are still a bit goofy in first person, but we'll eventually have them nicely swing into view when you're walking or running! Alex is working on some new forms of movement for our character which we'll get into in a future DevBlog. Multiplayer Yup! You heard that right. We have basic Multiplayer functionality already working pretty smoothly! (Ignore my terrible apartment WiFi ping.) You can do quite a bit already as the heart system and breaking and placing blocks are both implemented in their early forms. Here is the first ever... uh... "special" statue built in Multiplayer Nightfall. We've made quite a bit of progress here and all of this is synced up between players. Overall, Multiplayer is doing very well in early testing and we are super excited for what's to come! Health System Check out this graphic to learn more about our health system. We've taken inspiration from some of our favorite ways of doing health and combined them to make our own unique form of health.  Hearts are measured in half heart increments and you can go down to one half of a heart before dying. You may have noticed some hearts in the top left of some of the screenshots we've shared. This is the basic implementation of our Heart System which you can read more about above. We've actually changed the way these hearts look from the screenshots and the placeholder to be a new design by Trevor. Here you can see a normal heart, Golden Heart, and a poisoned heart. Profiles and Friends Profiles In Nightfall, we're working on a non-gameplay related system for you to show off your stuff. We're planning to have an in-game area to view your profile and see all of your statistics and achievements all in one place. We will also have some cool collectibles called profile tags that you'll be able to showcase here. Profile Tags Profile tags are basically badges for your profile page. Imagine Pin Collecting at Disney world -- yeah, that. You'll be able to earn them through in-game achievements, reaching statistical milestones, events in-game and on Discord, and other ways like supporting us on Patreon. These are purely cosmetic and are more for collecting than anything else. They have NO effect on gameplay. You can actually earn one of these future profile tags right now through our Pioneer program on Discord. Go check out our community server on Discord to learn more about it! Congrats to those of you who have already earned your Pioneer title! Friends Another thing we would like to incorporate into the profile system is friends. This mechanic would allow you to add people you know in real life or friends you meet in game for ease of access in joining their games and seeing their profile pages! This is a great way to keep track of all of the people you meet and check out other people's profile tag collections! Dev Spotlight A new segment in the DevBlogs! Each blog we'll be spotlighting a different member of our Dev Team here at Venatus! This will give you a chance to learn more about us and see that yes, we're human too!  This week's spotlight is...   Jacob Jacob is a new addition to our team this past week! We're super excited to be working with him. Jacob has really spear-headed out terrain generation over the past week and came onto the team with a lot of world generation experience. If it was not for his previous hundreds of hours of hard work, Nightfall would not be as far along as it is today. Jacob is 22 years old and has been working in Unity for over four years. Before that, he was active in the Minecraft Modding community and developed multiple modifications to Minecraft. This is where he initially started his programming journey as a middle school student. He enjoys playing Minecraft, in which he has thousands of hours, and also likes to hop into the world of Dark Souls. Currently, Jacob is working on a system of layering chunks that will allow us to do some pretty nifty stuff with our terrain generation vertically! If Jacob could add anything to Nightfall, he would like to dive more into the complexity of chaotic bosses in the game.   Development Streams (Twitch) Some of you may have caught our previous development stream on Friday, which you can re-watch most of here. We're planning on doing a lot more of these Development streams in the future so you can watch us model, program, draw, and create the world of Nightfall. We'll do lots of Q+A sessions where we answer your questions about the game, and in the future we hope to do streams of actual gameplay showcasing new features or updates. We might even do streams where we play with the community some day! Here's hoping! If you're interested in watching these streams, go ahead over to our twitch by clicking the link below and give us a follow so you're notified when we go live!   Discord, Patreon, and Social Media Discord https://discord.gg/2BKtNks Use the link above to head on over to our Discord. This is the absolute BEST way to communicate with myself, any of the Developers, and the community. We have dedicated areas for you to suggest features, give feedback, learn more, and most importantly - ASK QUESTIONS (and get an answer too!) This is the easiest (and free!) way of supporting us and we are so happy to see so many of you already taking advantage of this by joining, talking to each other, suggesting features, and grilling us with questions! It's been great!   We already have over 100 members in our Discord community! Incredible! Patreon https://www.patreon.com/vgnightfall Honestly, we're new to the whole Patreon scene, but you can pledge to monetarily support us monthly here. We do have various tiers of support that each provide unique rewards like special roles on our Discord server, access to even more direct communication with Developers, and of course, eventual early access to the game to help us test. You'll also get bonus development content and an even closer peek into our development process directly through Patreon and Discord when you subscribe! We've already posted a lot of extra content on our Patreon! Thank you to our current Patreon supporters: Patreon - Nedac16   Twitter https://twitter.com/venatus_games This one is pretty simple. It's just Twitter. If you click the link, it'll take you to our page and let you follow along with what we do there. We'll share similar content updates there along with more information or if we're ever looking for help. Click the link and give us a follow if you're feeling generous and help support Nightfall!   (Closing) And night is upon us... As you can see it's been an absolutely bonkers week since our last post. We are through the roof with the progress that's been made in our short time working on this project and are looking forward to the next few DevBlogs where we'll really begin to show off what Nightfall has to offer. However, a word of caution there. This upcoming week is a very busy one for the team outside of developing Nightfall, so there's no promises on a DevBlog post next week. We'll let you know what our schedule for the next post is looking like over on our Discord, so come join us and keep your eyes on the announcement channel for more information.  We have a brief survey and would really appreciate if you took the time to fill it out! Click the link below to check it out! It won't take longer than a minute! Thanks!  https://docs.google.com/forms/d/1-XHJUX57RvUxOfJQDS122Ffg4B5FQqIsITWlejDcAOw/edit  Well, it's getting dark and night is falling, so we better get going, but we'll see you sooner than you think!   Thanks for reading!   Humbly,  VG Jack and the Venatus Team    

Venatus Games

Venatus Games

 

I want to be a character in a video game!

#IWantToBeAnNPC (I Want to be an NPC competition) Ever wanted to be a character in a video game. Not just be able to create a customizable character but there actually to be cannon characters who look like you? Young or old, black white Asian, purple pink hair, you! To celebrate the upcoming release of my first publicly available game #Frostbite you are going to have a chance to be a character in the next game #ScaryMermaid. I need a lot of characters for it and I want to ask you to be one of those characters. There are going to be 12 slots with a different way to win each month till the game comes out. For the 1st month(November) the challenge will be to upload a video of yourself playing or reviewing #Frostbite with a short description of yourself or the character you would like to see in #ScaryMermaid. There will be a vote. The person with the most votes wins. Well I’m sure you’re curious what will you actually win? Well A character who looks like you in the game with your name or the name of your choice You will get to do the voice acting for the character You will be featured on my blog A copy of #ScaryMermaid when it comes out Your name in the credits of #ScaryMermaid A specialized piece of promo art featuring your character And possibly additional prizes Stay tuned for the launch of #Frostbite and additional details. The post I want to be a character in a video game! appeared first on Gilded Octopus.
View the full article

GildedOctopusStudios

GildedOctopusStudios

 

How I Made a Struggling Indie Game $10,000, and How You Can Too

With my new game Frostbite nearly ready to release into the wild I’ve been thinking a lot lately about marketing. It’s an area that I see a lot of Indie developers struggling in. It’s also crazy crucial to the success of indie games. So when I saw a tweet by Travis Taborek– a Digital Marketer & Writer who specializes in #indiegame marketing- about the benefits of influencer marketing for indie games I knew I needed to learn more. So I’ve asked Travis for a guest post on how to accomplish this. I hope you enjoy this look into a different side of game development than what we normally see and find it helpful. Let’s be blunt, we all know that game development is a demanding and utterly thankless job. The neverending days, weeks, months and years of ceaseless grind working for cents on the dollar would be enough to crush anyone’s spirit.
Even if you do get your game to a playable state and have it ready for launch, your game is far from guaranteed to succeed.
If you’re going to stand out in a market that’s already oversaturated with indie games and sees tens-of-thousands of new releases every year, you need a plan, you need to understand your audience, you need to know how to leverage the channels that are the best fit for your game, and you need to have luck on your side.
In other words, you need to do marketing for your game. Game development in itself, as previously stated, is a full-time job, but both making *and* marketing your game as a solo indie dev with no budget is a herculean task.
But not to worry. With a couple of straightforward, scalable strategies, you can take the game that represents your hopes and dreams and turn it into a profitable business.
Here’s how it works. My First Case Study Pitching your games to Youtube and Twitch influencers in the gaming space is your safest marketing bet. If your game is:
1) Decent 2) In a playable state, even an alpha 3) You want it to make money
That’s how it’s done.
A year ago, I enrolled in a digital marketing course at a fancy-pants tech bootcamp in San Francisco. 
While studying there, I partnered with a two-man development team making a 2D space RPG on Steam. Influencer marketing was one of the first things we tried.
I did some research on influencer marketing for indie games. When I did, I came across this article by fellow indie game marketer @Tavrox: https://medium.com/@Tavrox/how-to-find-influencers-for-your-game-45b7e8fcb1a8.
In it, Tavrox outlines the process that he uses for influencer marketing campaigns for the games he works on. I read it and thought to myself “This seems worth trying. Let’s give it a shot.”
So here’s what I did.
1) I thought about the people who were most likely to play my client’s game. In this case, either hardcore gamers who enjoy space sims (EVE Online, Elite Dangerous etc.) or people who gravitate towards games with crafting elements (e.g. Terraria).
2) I made a list of ten games that were most similar to my client’s game
3) For each game, I came up with a list of 10 influencers who feature that game heavily on their channel until I had 50
4) I crafted a pitch explaining the game’s major selling points and why they would enjoy it
5) I sent them all Steam keys for the game asking them to review it
I sent out 50 emails to 50 YouTubers.
One of those 50 YouTubers did a review.
That review got 33,000 views.
The traffic from those 33,000 views made the game $10,000 in two days.
That’s a decent chunk of change. You could buy a car or put a down-payment on a house with that.
And that’s the basics. Here’s where it gets slightly more complicated. How to Split-Test and Optimize your Outreach I got a little lucky on my first outreach campaign. It isn’t usually that simple.
Here’s the thing. YouTubers get pitched by 100’s of indie developers just like yourself every single day. Their inboxes become inundated with review requests for games just as deserving as yours.
That means that they normally don’t respond to boiler-plate marketing emails sent en-masse. 
The flip-side to that equation though is that you need to send your game to 100’s of influencers in order to turn your game into a profitable business, which means that sending each one personally hand-crafted emails signed in triplicate and scented with rose-perfume and delivered with a gift basket of iced champagne, cuban cigars and beluga caviar just isn’t feasible or realistic.
The trick is to find the middle ground. Personalize your emails just enough to make the recipient think that you delivered it to them personally, but make it just generic enough so that you can set an email automation tool to fill in the blanks for you so you can make your outreach scalable.
A typical pitch email has the following structure:
Hey there {{first name/online handle}}.
I came across your {{game title review}}.
{{Include a short sentence here about their channel that you like or that stood out to you, so they know you took the time to watch their videos}}.
{{A one-to-two-sentence description of your game goes here}}
{{A GIF or screenshot of your game goes here}}
Here’s a Steam key for a review: {{Steam key}}
That’s a pretty standard pitch. A few things to keep in mind:
– Keep it short and sweet. Generally speaking, the fewer words it takes to convey a message the better.  – It takes me about an hour to come up with a list of 10 potentially suitable influencers for a game
And how do you perfect the art of pitching to influencers? The same way you do any and all marketing: through continuous testing and experimentation!
Set up a new test with every iteration of 50 influencers. Here are a few split-tests you can try:
– Impact of including their first name in the subject line – Times of day – Influencers who specialize in different genre – Long-form detailed pitch or a short-form pitch that cuts to the chase – Does including visual elements and branding e.g. logos, GIFs, screenshots have any effect?
Here’s how I would do it:
– Come up with a list of 50 influencers. Have 10 of those be your VIP’s – the most popular YouTubers who would feasibly take an interest in your game. These 10 people get personalized emails specifically crafted for them – Take the remaining 40 influencers, randomize the list and seperate them into Groups A and B. – Test one of the elements mentioned above – Use MixMax to send your emails: https://mixmax.com – See which group has the highest open and response rate after about a week – Find another 50 influencers, optimize off the winning result, and run a new test. Rinse and repeat!
What strategies have worked for you and your game’s outreach? Comment below with the processes and experiments you’ve tried!
The post How I Made a Struggling Indie Game $10,000, and How You Can Too appeared first on Gilded Octopus.
View the full article

GildedOctopusStudios

GildedOctopusStudios

Dev Diary #041 - Slicing Images

Hello and welcome to this weeks dev diary! Today I'll show a couple of ways to slice up your images into smaller portions, one that doesn't require any plugins and one that need you to download a script. The following tutorial uses the default settings for GIMP, just like a fresh installation with no previous installations that might have retained some of your old settings. The GIMP Version is 2.10.12   The Manual Way Slicing the image manually can be really work intensive, depending how many parts you want to slice your image to and is by no means an efficient way to do it, but will suffice for anyone who wishes to divide their image to 4 x 4 tiles or less. 1. When you have loaded up the image you want to slice into smaller pieces, go to image > Guides > New Guide...   2.a When you click on the "New Guide..." the following box appears. 2.b Now you have to do some math and divide your image into as many parts as you want. You have to do this both horizontally and vertically as many times as you need guides. For this tutorial I'll make the image into 4 x 4 tiles, meaning 3000x3000 pixels in size, as per 12000 / 4 = 3000 - this means that I need to space all the guides 3000 pixels apart from each other, adding 3000 to each position. i.e. the first guide to 3000, the second guide to 6000, and the third guide to 9000. 3. After you have added your guides, your image should look like this;   4. Go to Image > Slice Using Guides - Click it and GIMP will divide the image for you into separate images and switch your view to the last piece. The original image will still be intact. GIMP will use the same filename that your original file has, but add to the row and column number to the end of the name, like seen in the above image filename, on the top right corner. Original filename in this example is; M5213A-texture-12000x12000.png The last piece has an addition at the end of it; M5213A-texture-12000x12000-3-3.png The below image showcases how GIMP organizes the tiles. First number represents the Column and the second number represents the Row;   5. Save each image separately, by going to File > Export As... (or using shortcut of Shift + CTRL + E). The file extension is the same as the original file's, so no need to change any setting when saving the files. The default export path is the one that the original image resides in, so you may want to create a new folder for the image slices. There is also several plugins that helps with saving multiple tabs in GIMP.   The Much More Automated Method 1. First, download these plug-ins; ofn-layer-tiles Export Layer 2. Install both plugins into C:\Users\"Your-Username"\AppData\Roaming\GIMP\2.10\plug-ins Note that the "2.10" folder is the version of the GIMP you have installed and will change after each update that changes the first or second version number. Now your plug-ins folder should have these files.   3. After opening GIMP and your image file, remove the ".png" from your layer name. This will ensure that the "Export Layers" plugin names the layers correctly. 4. Go to Layers > Tiles > Split tiles (by rows and columns)...   5. Choose how many rows and columns you want, no need to change other settings, unless you want to specify different naming schemes. Read the plugin instructions for more information on that. For the purpose of this tutorial, I will be splitting the image into 4 x 4 tiles, just like before. By default, the slicing process named the files with the same logic as GIMP, the first number represent the Column and the second one is the ROW. The only difference is, that the plugin starts the numbering from 01 instead of 00, that GIMP starts from. This can be changed in the settings how ever, if this is important to you. To make the numbering start from 0, change "{column1:02d}-{row1:02d}" to "{column0:02d}-{row0:02d}".   6. Press the "OK" button and the plugin will change the image into separate layers. 7. Go to File > Export Layers... Choose the folder you would like to save the images to and your preferred file format. After you are done, click "Export". The Plugin will save each layer as a file and depending on the size of your original file, this could take some time.   Conclusion For my needs, these plug-ins are gems. I'm just surprised how come GIMP does not include these kind of functionalities out of the box. But then again, open source programs tend to rely more on community to add more functionality to the core program in the form of plug-ins and scripts. One thing that should be a out-of-the-boc functionality, is the "Save All" option for saving all open documents easily and fast. Hope this was of use to you and I'll see you on the next one! You can check out every possible mid week announcements about the project on these official channels; • YouTube • Facebook • Twitter • Discord • Reddit • Pinterest • SoundCloud • LinkedIn •

ProjectTaival

ProjectTaival

 

Descenders is live!

The latest update from Descenders is live, which officially includes modding functionality powered by mod.io.
View the full article

intenscia

intenscia

 

Doom Challenge#: Some concepts

Playing around with couple of different concepts trying to create some fearsome monster, after all attempts I ended up with this rabbit-like creature. Of course it hust an early concept, because now I just testing some options to find wich will be the best     Here is more shots: https://www.artstation.com/artwork/9eryLR  

Jozin

Jozin

Gameplay Fragment’s Moonrise | #26 The Hunt for the Drake

Welcome to our twenty-sixth blog post!   In this post, we’ll be discussing the Drake, a creature skilled in ambushing, whom requires one to focus greatly, in order to be adequately prepared for when it does strike.   Hunting it is large part of the battle- it does not always simply charge, attack, escape. Its much more crafty. It waits for the moment to strike. Which can come at any time- during a fight, or simply standing at the ready. The mechanics based around this fight is that we desired a boss which would strike somewhat randomly, while one is exploring the land. It can either be relentless, attacking repeatedly and predictably, or escape for a while, not to strike again until it has been discovered. Discovery is not predictable- its long vision ensures it will come at random times, at a random angle. Sometimes, it can’t even be found at all, and you’ll have to search for it. As we begin to expand our Research system, we imagine this boss will be more on the optional side, yielding good rewards should you choose to chase after it.   The Drake’s movement is quick and forceful, aiding its ability to escape. While out of view, it becomes invisible, and hard to detect easily. As such, utilizing the land around, and your array of warriors to surround this creature is the best and most fundamental strategy for defeating it. It relies on continuing its momentum to break through a wall of units, but a strong surround can end that.   An even greater method of keeping it at bay is to freeze it in place. The Apprentices of Water plays a key role here: its Water Bolt spell roots a hit foe to their location for a few moments, stopping it completely. This can play a great role in surrounding, and keeping it from escaping.   The Drake’s main method of escape is its teleport- a long cooldown spell, but with great range. This allows it to rapidly escape from any unfavorable engagement, to return again later for a more favorable one. It can even outright vanish with this, to somewhere far away outside of its normal aggro radius, forcing player to hunt it further. ---
    Thank you for viewing our post! Support and interest for the project has been rapidly growing ever since we began posting here, and we're incredibly grateful for all the wonderful feedback so far! We hope this project interests you as much as we love developing for it, and please look forward to more updates coming in the very near future! If you’re brand new, consider checking out our trailer and overall description of the game here.

Yyanthire Studio

Yyanthire Studio

 

Inching towards an elusive goal in mind: playable

At this point, I am shocked I have gotten this far. I keep having issues, I keep solving them, and it keeps moving forward. Un-freaking-believable. I set up a todo list 31 days ago, and got most of it knocked out. I figured, this would be a good time to square it back up, tack on some more , and get it going. Maybe not so long of a list this time. So a few things still not added, including a camp fire, a shelter, and the fauna jake had laid out in design. We know combat works ( still, the sand snakes still exist ) so I am not to concerned about it. To add camp fire to the items buildable, I realized we need to have items have a ‘burn’ type variables, since a fire could break out due to lightning or whatever ( no idea what else, but its a thing ) . And for a shelter, it occured to me that needs to be a section in the items base script – things like, is it a sleepable shelter, how many items can it hold, which then brings up the fact that I need another inventory type panel for shelter/storable , so like a holding chest. So lets get it on, here is the todo list for the next few weeks: Limit searching for items by “hand” ( no tools ) by adding to the list of regenerate-ables. Add “fire” – like variables to Item_Object Create a “camp fire” item, that can be lit with a “bow drill” item Add “Shelter” item to sleep and store items in Add Fauna in Jake’s design ( 3 predators ) implement animation for weapons (maybe consider collision for combat instead of the current tile system) implement missle weapons ( spear, bow and arrows ) Add Tutorial stuff to MWC ( message window controller ) as well as intro text, and other texts Disaster: Lightning strikes caused by storms, starts a fire Disaster: Earthquake, shakes screen, causes damage to player ( and mobs ) and could destroy shelters Disaster: Volcano caused by Earthquake rises and flows lava, lava starts fires and causes damage Disaster: Flooding caused by long rain storms, rises waters and destroys shelters
View the full article

davidkilmer

davidkilmer

 

The "Learn Pixi.js" book. TypeScript Port

This is an official link to original book examples in JavaScript: https://github.com/kittykatattack/learningPixi I rewrite the examples to TypeScript and Pixi.js v5. I will public examples on: Playground. You will be able to see a code and a result. I use complication to  AMD modules (Asynchronous Module Definition) and the RequireJS library to load AMD modules GitHub Pages. I use compilation to CommonJS modules. I bundle JS files to bundle.min.js using Browserify and minify it to bundle.min.js using UglifyJS Source code on GitHub: will be later I will NOT use Webpack, Gulp, Grunt and so on. I will public the instruction on GitHub how to build examples locally in the README.md file. Note. Release version is loaded more quickly, but on playground you can see a code, you can make a fork, change the code and save it with a new link. Hello World: playground, release Displaying the canvas: playground, release Sprite From Image: playground

8Observer8

8Observer8

 

Graphics Programming weekly - Issue 102 — October 13, 2019

Surface Gradient Based Bump Mapping Framework a mathematical framework for more consistent layering of bump/normal maps using linear surface gradients shows the problems with reliance on vertex level tangent space in existing techniques how to express existing methods in the new framework including source code
wayback-archive Emulating a fake retro GPU in Vulkan compute high-level system discussion of a retro GPU emulation implemented in Vulak compute shaders implementation details are discussed in the presentation using Subgroup and async compute for further optimizations presentation archive wayback-archive RenderDoc - Version v1.5 new RenderDoc version allows explicit GPU playback selection improved SPIR-V reflection, performance improvements more extensions and feature levels supported for Vulkan and D3D12 wayback-archive Real-time Rendering of Layered Materials with Anisotropic Normal Distributions proposal of approach for rendering layered materials layers are defined by anisotropic NDFs on varying tangent vector fields wayback-archive Living with Vulkan and DirectX 12 the post describes the perspective from Stardock on D3D12/Vulkan vs. D3D11 new possibilities but also many more problems performance improvements with D3D12 need to be balanced against the higher QA costs compared to D3D11 wayback-archive Progressive Real-Time Rendering of One Billion Points Without Hierarchical Acceleration Structures proposes a real-time solution to rendering unstructured point clouds combination of temporal reprojection, random point selection, and GPU vertex buffer shuffling paper archive wayback-archive Denoising as a Building Block provides an overview of the foundations of denoising techniques expands pon the basics to explain how more complex schemes are constructed how to consider denoising as a building block for several different problems wayback-archive Thanks to Graham Wihlidal for support of this series. Would you like to see your name here too? Become a Patreon of this series.
Read more

jendrikillner

jendrikillner

 

Snake - Loading cut-scene assets

I've worked through loading of cut-scene data from the JSON files, and am now figuring out how I want to load cut-scene assets.  I'm mostly typing up this blog entry as a way of documenting this to myself.  Cause thinking through this is a little bit hard. 😓 When you hear "cut-scene", you might be thinking that I'm just going to play a video file before each level to provide some narration.  Nope, I wanted to make use of the game engine instead.  Cut-scene definitions are kind of like scripts that indicate which map to display, have the snake move around the map, make things appear, etc. on a timeline.  My hope is that this will make cut-scenes feel like you're part of the narration...  Many games we play will pre-render video files, often looking way better than the game itself -- I've always felt like I'm being taken out of the game when this happens. In my head, the opening of story mode will show the snake moving through several areas before reaching the first playable map.  Background music will play, some narration occurs, and then the game begins. Anyway, the challenge I'm facing now is that I decided to allow cut-scene definitions specify as many maps as the level designer chooses.  Currently, the "StoryLevelAssetBundle" class I wrote only allows for the level's main map and its textures to be stored.  I now have to expand that to store multiple maps across potentially up to three cut-scenes (one played before the level, another if the player loses, and another if the player wins).  It's also possible -- even likely -- that the same textures will appear across those maps.  It's even possible that the same map could appear several times. So here's what I figure I need to do...  Note that I'm using the phrase game map in an attempt to distinguish it from the C++ unordered_map. Loop through each cut-scene's event list to find all the references to game maps.  Load the game map definitions for them, probably keeping them in a std::unordered_map, keyed by game map filename. It's probably still best to keep the level's playable game map asset separate -- during game play we want it easily accessible. Loop through each game map definition, in order to load all the game map-related textures.  To avoid loading the same texture multiple times, keep all textures in a std::unordered_map, also keyed by game map filename.  If a texture has previously been loaded, we'll now know. While looping through the game map definitions, we can also store the floor and barrier texture references in separate std::unordered_map's, keyed by floor or barrier ID.  However, the values will be pointers to the sf::Texture objects previously loaded. I believe the game maps used within cut-scenes will need to be in a nested container structure. Now that I have that written down, time to implement it! I've worked out in my head exactly how the silly "Adam's Revenge" story will go, and I'm really looking forward to getting over this hump of being able to play opening cut-scenes before each level.  We have our Thanksgiving weekend here in Canada, and this is how I'll be spending it (well, the non-family part of it at least). 🤣  The fate of the world is in your scales...  

rileyman

rileyman

Unity Weekly Updates #64 - Jumping Around

Good day to you! Welcome to this new Weekly Updates blog entry! Last week was, overall, pretty packed. After a short strategy time, I managed to come up with a plan that I think will be more impactful than before. So without any further ados let's get this thing started, shall we? Platforming The main theme of this Weekly Updates post is probably platforming. Players could always jump but, so far, these were mostly used as a defensive technique. These were really helpful for range players but literally useless to everybody else... To fix this, I decided to sprinkle the levels with a bit of platforming. Basically, some tunnel rooms will now spawn stairs. These will, in turn, lead to platforming challenges that'll reward players with good-old-fashioned loots. Similarly, I'm also planning to have hidden shortcuts scattered around too. The idea is that some normal rooms will contain super secret stairs under breakable props that will allow the player to skip some rooms. The difference here is that instead of loots these will open up to an exit. Platforming Challenges Each platform challenge will be created by hand. To spice it all up, there'll be level-specific challenges as well as generic ones. When generating the level, those challenges will be randomly picked. Some challenges can also include a puzzle to solve. These challenges will be composed of several platforming elements. The idea is above all to offer a lot of diversity and to propose several unique challenges while simplifying their conception. Let's take a look: Moving Platforms First, let's look at moving platforms. These types of platforms move along a predetermined path. Most of the time, this type of platform moves linearly from one point to another. Players can, with good timing, jump on it to enjoy a free ride. At any time, players can land from them by jumping or simply dropping them. Some platforms will move rather in a cyclical movement (for example, making circles or following a predetermined circuit). Players must, therefore, time themselves correctly and use these platforms to their advantage. Rotating Platforms Secondly, there is another type of platform not very different from the previous one: the rotating platform. Basically, they are functionally identical to moving platforms. They too allow players to enjoy a free trip. However, unlike mobile platforms, they rotate rather than move. Some turn on themselves and others turn on different axes. They can also rotate at different speeds. Therefore, players must again use timing while dealing with them. Ladders Finally, here is the last one: the ladder. Ladders are, like in real life, practical tools for reaching things that are normally too high to access. In the game, players can climb ladders by simply approaching them. Once mounted, players can now move both vertically and horizontally on the ladder. Players will automatically dismount the ladder once they reach any of its extremities. To rapidly drop from a ladder, players can press the jump key. This pushes players off the ladder. Since the game takes a first-person perspective, ladders behave almost identically to those found in Source Engine games (Half-Life, Counter-Strike, etc.). Thus, players are free to look anywhere they want while still being able to freely use any ladder. That's about it for platform challenges. Here's a video showcasing a placeholder simple platform challenge:   Puzzles Secondly, I've managed to refine puzzles and add a new puzzle piece. There are still two types of puzzle pieces but now there a new sub-type of the pressure plate. Now there are two types of pressure plates: round ones and square ones. The idea is to have two distinctly different models for two different types of pressure plates. The round pressure plate acts like your typical button. This means that once it's pressed down it stays down. The square one needs constant pressure to stay active. Usually, players can use some kind of weight (like a pushable block) to keep it on while solving other puzzles. Minor Updates Added some pressure plate animations and transitions Remapped puzzle pieces UV maps to use different tints Changed most puzzle pieces shader to offset UVs to vary the model's colours a bit. Next Week To be honest, here, I'm hoping to really get it going with platforming challenges and puzzles. I really want to get these things started and see where this will go. Aside from that, it's your usual suspects... Otherwise, I'm still constantly thinking about what to do next... It's been so long without any conceivable revenue and perhaps it's time to do something about it.  What it is is still unsure. Perhaps it's to either create some kind of Kickstarter campaign or something alike... Perhaps it might even be taking a bit of work on the side to stay afloat. I really need to think about it because any false move could put the game in a bad position. I really believe in what I'm working on right now. It has a very unique approach to Vaporwave that I haven't seen a whole lot of. Usually, designers stick with either neon colours on a dark background or retro PSX aesthetics. However, I didn't see any love for Memphis Desing nor 90s design. This really makes me think that I'm on to something. But anyway, let's try to make it work in the first place!

jb-dev

jb-dev

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!