Jump to content
  • Advertisement
CSharpCoder

[Demo included] Looking for pixel artist partner for a 2D action RPG

Recommended Posts

Hello,
I am a lone programmer looking for a pixel artist for a 2D action RPG (more like some RPG elements) inspired by games like Dark Souls (but still with original ideas and game mechanics). The game will revolve around an engaging combat-system, environmental story telling, a few characters who in turn has great depth and personality (they will have personal goals that are more important to them than their usefulness to the player).

I haven't decided on the rest as I want us to design the game together. In this project, you will play as much a role in decision-making as I will and you will receive 50% of any potential profits. I was thinking of making a Kickstarter, but that depends on your opinion and financial situation.

Now, I cannot stress this point enough, we will be partners. I'm not just looking for someone to do what I tell them, I want your opinion ideas and I want to have discussions about the game. All I have right now is the concept and my engine and skill set. The setting, story, and lore of the game are still to be decided as well as a ton more. 

I do have an idea for a game mechanic, which involves a handful of weapons to change between instantly much like in an FPS you change between weapons with the 0-9 digits on your keyboard. These weapons can be combined to defeat enemies and unlock different parts of the game. But that's just a possible idea, it depends on your opinion.

I have made an engine for this game on top of the MonoGame framework using the programming language C# that I have a lot of experience with. I have also created a small example level of what we could make with the engine using art from the game "Chasm".  

We can easily place tiles and colliders using the tile map editor "Tiled"

pd0vKut.png

The Tiled files will be imported to Unity where you can place enemies as well as backgrounds, objects and generally sprites not limited to a tile size (I'm pretty sure Unity also allows import of photoshop files). When saving the scene it will produce a small .level file containing only the data we need from the Unity scene (I have complete control of the content of these files). These files can be placed in the MonoGame folder to allow the game to load them and use them.

KrYl6VB.png

As for animations, I have made an animation editor for Unity that allows you to select a sprite, a delay until next frame, and colliders for each frame. When saving the scene all animations will be saved to a single .anim file that can be placed in the MonoGame folder to allow the game to read the animations.

jM2ZJFD.png

Don't worry if this all seems overwhelming, I will explain in further detail and guide you through it if you decide to partner up with me. If you want to focus mainly on the pixel art that's fine too. Generally, I understand that you need to eat and since you won't get paid at least until a potential Kickstarter I realize you probably have a job, or school to think of besides this just like me, so I don't expect you to work full time, or even as much as I do.

Later on, I can even make tools for you if you have any requests.

We will share the animation editor and level editor over Unity collaboration and communicate over Slack unless you have any other preference. Although I do prefer communication in text form since it allows me to express myself concisely, not have to think about my surroundings, think about what I will reply and read previous conversations.

Now as promised from the title here is the demonstration of the engine and results of the tools as well as a demonstration of my capabilities. I do not own any of the art and nothing is final in terms of gameplay and the art will not appear in the final product of course. 

You only have one attack in the demo and I have disabled the stamina system since I'm not sure if we should have that in the game. The enemies are too aggressive since they have no attack cooldown they keep swiping at you (not really an example of the engaging combat-system I was talking about, would be nice with some more moves for both the player and enemies). The cave troll has an exploit where you can just stand inside of it and it can't hit you, this problem which is mainly for large enemies could be solved by extending the attack collider, or adding some kind of AOE attack when the player gets too close like a slam attack. Also, the cave troll has no walking animation. 

The UI is really barebone and really just placeholder, but it gets the job done. You can open up the menu with "Escape" or "Start" on the controller and set stuff like keybindings and even sound effect and music volume (even though there is no sound or music yet). We are going to need a sound designer in the near future.

You can reload the level with the "R" key on the keyboard.

You can fall through platforms by jumping while crouching.

You can push the explosive crates around and drop them on enemies for massive damage. They also explode when hit with a weapon.

The red lines are the colliders, the gray lines are the colliders bounding boxes.

I have attached the demo to this post, but the demo can also be downloaded here: https://www.dropbox.com/sh/pweivx9fdo96wb7/AAA9XvuYOW3to1bBXHjOzNRfa?dl=0 

The idea was to get this game through Steam Direct and sell it for something like 10$. I will, of course, pay the fee for entry. This isn't a get rich quick scheme, I just want to create a game that I can be proud of and would play myself and it will require the same kind of hard work that I have done to get here in the first place. I will not give up as long as there is hope for the project.

If this peaked your interest and/or you have any questions you can contact me on my email:
martinmaxdd@gmail.com
 

Thank you for reading this

Game.zip

Edited by CSharpCoder

Share this post


Link to post
Share on other sites
Advertisement

Hi there.

I am an artist with working experience in art, graphic and 3D animation. I have won a worldwide art competition for my Illustrations and am have designed concept art for a games that have unfortunately ran out of funding.I am interested in joining and see if we can create some really cool material. Hope you like my work. Thanks mate. Andy. 

Awaken_Page_3.jpg

Awaken_Page_4.jpg

wwweee.jpg

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Advertisement
  • Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Aggrojag
      Hello!
      I'm working on a game that is quite personal to me. It touches on my own depression, obsessions, phobias, etc. It's a narrative driven dark comedy with some small aspects of platforming and puzzle solving. The project is rather small as well. It touches on topics such as suicide, mental illness, family, corruption, free-will, and redemption. We are using Trello at this time to track tasks & progress, you will be expected to use this. We are using Discord for general conversations, you will be expected to use this. Documentation, builds, and assets are stored in GDrive. I'd say we're about 60% complete overall, including 0 animations being completed. I have prototype builds that are available upon request.
      First, I'm looking for a 2D sprite artist, not pixelated, that can compliment the style of the attached images. The player character's animations will be a bit more extensive than a typical platformer, however there are only 2 major characters that will need animation. There will be many death animations, and some other strange dealings with the character that will need animated. A full list of necessary animations is available upon request. All static pieces, encompassing most of the environment, is already being handled by a separate artist (couple images below). For a better understanding of how things will look once finalized (shaders, etc), please watch the attached video at the bottom. We plan on playing around with bump-mapping for dynamic lighting on the sprites. This may result in additional work if we carry on down that route, which is looking increasingly unlikely. If we change out mind, this would likely be by using the alpha channel to carry information about height/depth. At the bottom you will find the a reference for the type of art style I'm looking for (it's not 100% accurate, but damn close).
      We are looking to bring on a SFX designer at this time. Full list of required SFX will be available upon request, as well as a build with all elements related to sound implemented in some form (many SFXs pulled from the web for now). Will likely require some field recording, and some pretty strange SFX for when things get weird. I imagine a good portion of these will be quite fun to create.
      Lastly, I'm looking for a male voice actor, English should be your primary language. There will be at minimum two characters that will need to be brought to life through vocals. They are a very core part of the game, though they will never be shown on screen. As a reminder, this is a rather dark comedy, so be prepared for some insanity in your portrayal of these characters. The first voice is similar to Marvin from Hitchhiker's Guide to the Galaxy. A reference for the second voice would be a mix of Ren (Ren & Stimpy), and Android 21 (DragonBallFighterZ). Due to formatting, I'm not including YouTube links in the post, sorry.
      To those still interested:
      I do plan to post this on itch.io and wherever else I can put it that makes sense. I fully expect to make nothing off this project, as should you. However, in the case that money is made, a rev share model will be in place.
      This project is exercise in polish, this means some experimentation will be needed along with some reworking of assets as they're provided.
       
      WIP Scene with our custom shaders attached (platforms are lazily placed, as this was an asset test):

      A scene with a temporary character & dynamic lighting:

       
      A scene with dynamic lighting and temp character:

       
      Unshaded asset:

      Scene3.mp4 A WIP scene with completed shaders.
      If you made it to the bottom, thank you, and I look forward to hearing from you.
    • By lucky6969b
      like this?

      const D3DXMATRIX robertx = D3DXMATRIX(1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
    • By bojanzarnoski@gmx.de
      Hello,
      I want to get into coding again by programming a 2D platformer to get started, but i don't know if i should use Java or C# with the unity engine.
      I am pretty fit with Java, but with c# i have to start from scratch. What do you recommend and why?
    • By 3dmodelerguy
      So I have this code to create a textbox ui element with SDL2 and for the most part it works:
      #include <iostream> #include "TextboxUi.hpp" #include "../Engine/Text.hpp"; #include "../Utility/SdlUtility.hpp"; #include "../Engine/Game.hpp"; TextboxUi::TextboxUi(int x, int y, int width, int height, SDL_Color backgroundColor, SDL_Color textColor) { _background = {x, y, width, height}; _backgroundColor = backgroundColor; _textColor = textColor; } void TextboxUi::setValue(std::string value) { _value = value; } void TextboxUi::handleInput(SDL_Event &event) { switch (event.type) { case SDL_TEXTINPUT: { if (_isActive) { _value += event.text.text; _cursorPosition += 1; } break; } case SDL_TEXTEDITING: { break; } case SDL_KEYUP: { switch (event.key.keysym.sym) { case SDLK_BACKSPACE: if (_value.size() == 0) { break; } _cursorPosition -= 1; _value.erase(_cursorPosition, 1); break; case SDLK_s: { if (!_isActive) { _isActive = true; } break; } case SDLK_LEFT: { if (_cursorPosition == 0) { break; } _cursorPosition -= 1; break; } case SDLK_RIGHT: { if (_cursorPosition == _value.size()) { break; } _cursorPosition += 1; break; } case SDLK_ESCAPE: _isActive = false; _value = ""; break; default: break; } break; } default: break; } } void TextboxUi::enable() { _isActive = true; } void TextboxUi::disable() { _isActive = false; } void TextboxUi::draw(SDL_Renderer* renderer) { SdlUtility::setRenderDrawColor(Game::renderer, _backgroundColor); SDL_RenderFillRect(Game::renderer, &_background); // if there is no text Text would fail to create the surface and texture (not quite sure why) if (_value.size() == 0) { return; } Text text = Text("Assets/Fonts/Vera.ttf", 12, _value, _textColor); text.display(_background.x + 5, _background.y + 2); // @todo implement visual for text cursor } The one last thing I want to do before I call this textbox done for the time being is try to figure out how to simulate a cursor. At this point just getting a solid cursor would be final (though ultimately I would like to have it blinking. I have the cursor position so I know between which characters the cursor should be however I am not sure how to calculate that.
      Is there a way to calculate the width of a given string without actually rendering said sting to the screen with SDL2 / SDL2_ttf?
    • By DevAndroid
      Hello everyone,
      I'm trying to display a 2D texture to screen but the rendering isn't working correctly.
      First of all I did follow this tutorial to be able to render a Text to screen (I adapted it to render with OpenGL ES 2.0) : https://learnopengl.com/code_viewer.php?code=in-practice/text_rendering
      So here is the shader I'm using :
      const char gVertexShader[] = "#version 320 es\n" "layout (location = 0) in vec4 vertex;\n" "out vec2 TexCoords;\n" "uniform mat4 projection;\n" "void main() {\n" " gl_Position = projection * vec4(vertex.xy, 0.0, 1.0);\n" " TexCoords = vertex.zw;\n" "}\n"; const char gFragmentShader[] = "#version 320 es\n" "precision mediump float;\n" "in vec2 TexCoords;\n" "out vec4 color;\n" "uniform sampler2D text;\n" "uniform vec3 textColor;\n" "void main() {\n" " vec4 sampled = vec4(1.0, 1.0, 1.0, texture(text, TexCoords).r);\n" " color = vec4(textColor, 1.0) * sampled;\n" "}\n"; The render text works very well so I would like to keep those Shaders program to render a texture loaded from PNG.
      For that I'm using libPNG to load the PNG to a texture, here is my code :
      GLuint Cluster::loadPngFromPath(const char *file_name, int *width, int *height) { png_byte header[8]; FILE *fp = fopen(file_name, "rb"); if (fp == 0) { return 0; } fread(header, 1, 8, fp); if (png_sig_cmp(header, 0, 8)) { fclose(fp); return 0; } png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if (!png_ptr) { fclose(fp); return 0; } png_infop info_ptr = png_create_info_struct(png_ptr); if (!info_ptr) { png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); fclose(fp); return 0; } png_infop end_info = png_create_info_struct(png_ptr); if (!end_info) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); fclose(fp); return 0; } if (setjmp(png_jmpbuf(png_ptr))) { png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); fclose(fp); return 0; } png_init_io(png_ptr, fp); png_set_sig_bytes(png_ptr, 8); png_read_info(png_ptr, info_ptr); int bit_depth, color_type; png_uint_32 temp_width, temp_height; png_get_IHDR(png_ptr, info_ptr, &temp_width, &temp_height, &bit_depth, &color_type, NULL, NULL, NULL); if (width) { *width = temp_width; } if (height) { *height = temp_height; } png_read_update_info(png_ptr, info_ptr); int rowbytes = png_get_rowbytes(png_ptr, info_ptr); rowbytes += 3 - ((rowbytes-1) % 4); png_byte * image_data; image_data = (png_byte *) malloc(rowbytes * temp_height * sizeof(png_byte)+15); if (image_data == NULL) { png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); fclose(fp); return 0; } png_bytep * row_pointers = (png_bytep *) malloc(temp_height * sizeof(png_bytep)); if (row_pointers == NULL) { png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); free(image_data); fclose(fp); return 0; } int i; for (i = 0; i < temp_height; i++) { row_pointers[temp_height - 1 - i] = image_data + i * rowbytes; } png_read_image(png_ptr, row_pointers); GLuint texture; glGenTextures(1, &texture); glBindTexture(GL_TEXTURE_2D, texture); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); glTexImage2D(GL_TEXTURE_2D, GL_ZERO, GL_RGB, temp_width, temp_height, GL_ZERO, GL_RGB, GL_UNSIGNED_BYTE, image_data); 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_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); png_destroy_read_struct(&png_ptr, &info_ptr, &end_info); free(image_data); free(row_pointers); fclose(fp); return texture; } This code just generates the texture and I store the id on memory
      And then I want to display my texture on any position (X, Y) of my screen so I did the following (That's works, at least the positioning).
      //MY TEXTURE IS 32x32 pixels ! void Cluster::printTexture(GLuint idTexture, GLfloat x, GLfloat y) { glActiveTexture(GL_TEXTURE0); glBindVertexArray(VAO); GLfloat vertices[6][4] = { { x, y + 32, 0.0, 0.0 }, { x, y, 0.0, 1.0 }, { x + 32, y, 1.0, 1.0 }, { x, y + 32, 0.0, 0.0 }, { x + 32, y, 1.0, 1.0 }, { x + 32, y + 32, 1.0, 0.0 } }; glBindTexture(GL_TEXTURE_2D, idTexture); glBindBuffer(GL_ARRAY_BUFFER, VBO); glBufferSubData(GL_ARRAY_BUFFER, GL_ZERO, sizeof(vertices), vertices); glBindBuffer(GL_ARRAY_BUFFER, GL_ZERO); glUniform1i(this->mTextShaderHandle, GL_ZERO); glDrawArrays(GL_TRIANGLE_STRIP, GL_ZERO, 6); } My .png is a blue square.
      The result is that my texture is not loaded correctly. It is not complete and there are many small black spots. I don't know what's going on ? It could be the vertices or the load ? Or maybe I need to add something on the shader. I don't know, I really need help.
      Thanks !
  • Advertisement
×

Important Information

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

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!