Jump to content
  • Advertisement

Search the Community

Showing results for tags 'Pixel'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Audio
    • Music and Sound FX
  • Business
    • Business and Law
    • Career Development
    • Production and Management
  • Game Design
    • Game Design and Theory
    • Writing for Games
    • UX for Games
  • Industry
    • Interviews
    • Event Coverage
  • Programming
    • Artificial Intelligence
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Engines and Middleware
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
  • Archive


  • Audio
  • Visual Arts
  • Programming
  • Writing


  • Game Dev Loadout
  • Game Dev Unchained


  • Game Developers Conference
    • GDC 2017
    • GDC 2018
  • Power-Up Digital Games Conference
    • PDGC I: Words of Wisdom
    • PDGC II: The Devs Strike Back
    • PDGC III: Syntax Error


  • Audio
    • Music and Sound FX
  • Business
    • Games Career Development
    • Production and Management
    • Games Business and Law
  • Game Design
    • Game Design and Theory
    • Writing for Games
  • Programming
    • Artificial Intelligence
    • Engines and Middleware
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
    • 2D and 3D Art
    • Critique and Feedback
  • Community
    • GameDev Challenges
    • GDNet+ Member Forum
    • GDNet Lounge
    • GDNet Comments, Suggestions, and Ideas
    • Coding Horrors
    • Your Announcements
    • Hobby Project Classifieds
    • Indie Showcase
    • Article Writing
  • Affiliates
    • NeHe Productions
    • AngelCode
  • Topical
    • Virtual and Augmented Reality
    • News
  • Workshops
    • C# Workshop
    • CPP Workshop
    • Freehand Drawing Workshop
    • Hands-On Interactive Game Development
    • SICP Workshop
    • XNA 4.0 Workshop
  • Archive
    • Topical
    • Affiliates
    • Contests
    • Technical
  • GameDev Challenges's Topics
  • For Beginners's Forum


  • Community Calendar
  • Games Industry Events
  • Game Jams
  • GameDev Challenges's Schedule


There are no results to display.

There are no results to display.

Product Groups

  • Advertisements
  • GameDev Gear

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me







Found 137 results


    13 RONIN - DevLog #6 - Time for graphics

    In my last blog post I showcased some of the audio I’ve been working with for my upcoming game 13 RONIN, now it’s time for graphics. But first a celebration. The 4th of October is a day dedicated to the cinnamon roll here in Sweden (yes, it’s true), which we, of course, celebrate by baking, buying and eating lot’s of (you guessed it) cinnamon rolls. Since I’m a fan of the pastry myself, I happily took part in the celebration. But I also had another reason to celebrate. From October and till the end of the year I’ve reduced the number of hours I’m putting in on my day job from 40 to 32 in favor of spending more time working on 13 RONIN. Big kudos to my boss for approving this! Main character How do you go about drawing a samurai with realistic proportions when you don’t know how to draw? I started by googling images on human proportions and created a reference image I could use as background layer while drawing. In parallel to this, I watched a lot of old samurai movies and Kendo-tournaments and with still images from these kind of videos as reference I drew my character. At the beginning of this project, I intended to use silhouette-looking sprites mostly drawn in solid black. This changed over time, I had a few different ideas, but finally settled on using gray-scaled sprites with very low-saturated colors for light and dark areas. I decided on this color scheme to keep consistent with the black and white samurai movie theme. The low saturated colors are there to make the sprites stand out from the background, but also to make the visuals more interesting. With this style, I’ve found a reasonable balance between aesthetics and time spent drawing. Background In the early days of this project, I was more into ninjas than samurais and the initial idea for the game was that you as a white dressed samurai had to fight a bunch of bad, bad ninjas dressed in colorful outfits. To get started I drew a forest background. Soon I discovered that even the best of the ninja-movies weren’t that good and I found myself switching to samurai-movies and my approach to the project changed. Now I wanted to create a fighting game looking like Limbo, with black ninjas emerging from the dark. Sometime later I re-discovered my love for low-resolution pixel-art and the Limbo-aesthetics was dropped. The code-project still carries the somewhat humorous working title of the ninja-project, it’s called “Ninja in the dark”. I wanted to start drawing something basic, something I thought I had the skills for and choose to draw a building which I later on turned into a tavern. It’s yet not finished and I can’t promise it will fit into the final game, but it will be the background of the first public build. Energy and score After finishing the background I took some time to draw the graphics for player score and energy symbols. I tried a few different ideas and settled on the score written in a custom font upon a scroll-like background. For energy symbols I also tried a few different ideas before stealing the yin-yang symbols from The way of the exploding fist and turning them red. I do love that game. In-game graphics There are a lot of animations to finish before the game is playable, but this is at least a taste of what will come. Please visit www.eraserheadstudio.com for more about 13 RONIN. Happy coding! /jan.
  2. Hello friends! I've got a new blog posting for my upcoming 2D pixel-art samurai fighting game 13 RONIN. This time I'm talking about background and character drawing. Please check it out at: Happy coding! /jan.
  3. Hi! I'm looking for a game designer and marketing/crowdfunding/overall manager for a farming RPG that I am planning to make. ABOUT THE GAME: A quirky top-down pixel RPG involving NEETs getting sucked into another world by a ditzy goddess in other to bring back order and life into her world by making the player help its occupants cultivate the land and fight the eldritch horrors that are trying to take over it. If you want to know more about the game or any monetization issues feel free to comment or PM me and I'll send you the GDD. REQUIREMENTS FOR GAME DESIGNER: * have a good sense of humour! (not the offensive kind because jeez you can make funny jokes without them being offensive ok) * be able to write romance, comedy, and adventure * skilled in world-building * be familiar with/passionate about farming sims, RPGs, dating sims, and the Isekai genre * know about NEET culture * have great experience in working on RPGs, please provide examples of past works * be able to commit on a long-term project * you should be a team-player REQUIREMENTS FOR MANAGER: * strong leadership skills but could be laid back and be friendly * very organized and meticulous * be able to help us with working out things for crowdfunding and marketing * help set us straight to our goals by making realistic schedules * be familiar with/passionate about farming sims, RPGs, dating sims, and the Isekai genre * know about NEET culture * be able to commit on a long-term project * you should be a team-player I'll be honest I'm gonna be really picky on who I'm gonna choose on this one even though I myself am a greenhorn. I would like this concept to grow into a full-blown game and I want everyone to enjoy it. I would really love it if someone with experience guides me through this well. I will be one of the artists and writers who will be working on the game :D Here is my portfolio: https://artsybarrels.wixsite.com/barrels Feel free to message me on Discord: barrels#6465
  4. Mariusz Kowalczyk

    First video devlog from my new game

    Yesterday I have posted here the very first screen of my game, today I want to show you some gameplay. Let me know what you think about it.
  5. Mariusz Kowalczyk

    First screen from my new game

    Some days ago I have started working on a new game. I have decided to go for an NES graphics (my goal is to make it look exactly like an NES game). I have already spent a lot of time to make the movement as fluent as possible. The movement is a bit similar to Contra when you are on the ground, but when you jump, you have 100% control over your moves. You can also decide how high you want to jump. The main characters (Vampire) can do wall jumps. The movement is very easy to grasp, but I want it to be deep at the same time, because I want speedrunners to speedrun this game. Let me know what you think about the graphics (it's pre alpha, the final game will look different, hopefully better).
  6. Hello! I'm currently looking for a programmer for my hobby project, to be built in Unity and released on the PC. It's currently in the pre-alpha stages, as I am currently working out how all the systems should eventually work and quickly realized I didn't have the coding knowledge to achieve it. (I'm more of an artist than a coder.) This is where you can potentially come in! Should the game be released, all funds accrued will be split equally and credit will of course be given wherever applicable, I can't guarantee it will get released, however. The Premise A fantasy, pixel art game in which you build a city and look after its inhabitants by supplying them with the things they want. (Education, Politics, Entertainment, ect..) The people can be visually customized, gain skills & jobs, marry, have children, grow old and die, their lives are at your whim. As you are building your city, you'll find that some citizens can go on quests for unique building materials, this turns the game into a X-Com style turn-based strategy, using the people that you send. Your city can be built however you want, with decorations and such, though your people may get upset if you don't give them what they need/want and abandon your city. The Programmer As the only coder in our project duo, I'd really need to insist that you know your way around a coding environment fairly well, as well as be able to utilize those scripts with Unity, the engine the game is being built in. The project will require: Pathfinding Coding UI Coding AI Coding Shader Coding (This may not be required if another method can be found) Communication I've found using Google Drive for documents, Unity Collab for file-sharing and Discord for communication really helps keep everything tidy and easy to access. If you have any problems with these systems, please let me know. If you are interested, please contact me at nathan.jenkins1012@gmail.com Whilst it is difficult to showcase coding, some examples of your work would be highly appreciated. Thanks for reading!
  7. Hello everyone I would like to announce that I am working on a fighting game that will be released in 2019 as a full game.I would like to take some of your time and ask that you check it out and give me some feedback.If you like the game please follow me on www.newgrounds.com or on scratch.mit.com or on game jolt.@Genius-xi
  8. Hi there, I’m relatively new to game making. But I will like to try my hands on making a simple pixel art game that can work on either iOS AppStore, or PC. Which software would you all recommend me to use? Hope to hear from everyone. Thanks in advance.
  9. Hi dev mates! My name is Joaquin and I'm the CheesecakeGames CEO, a small two devs indie studio, making games since 2010. I'm happy to announce a new game release, today we publish 'The Last Runner' a 2D pixel art runner. In this project, we focused all our efforts in the level design & gameplay features and after a lot of builds, tests and polish, the Beta was completed and today the Gold version is ready to download! Hope you enjoy it a lot and please, share and review it will help us a lot! Thanks! iOS: https://itunes.apple.com/app/the-last-runner/id1434066514?mt=8 Android: https://play.google.com/store/apps/details?id=com.cheesecakegames.tlr https://youtu.be/Mb9Kx8Fy-aU
  10. SavingGraceCoordinator

    2D Artist(s) needed for Epic 2D RPG

    Our small production team (Team lead, audio composer, and Programmer(s)) is looking for diligent and fun artists to join our group to make a new RPG tale. Game will be developed for Game Maker Studio. Description of game can be found below, and details for artists can be found beyond that: “An original and emotional Role Playing epic where everything is an experience.” Have you ever felt the stab of loss? Have you ever endured the fog of doubt and confusion, of feeling misplaced in a world that has unexpectedly changed? Has your reality collapsed around you so quickly that you were overwhelmed?. Then it’s time to search for something - a hope, a catalyst, a to light your way through the murk of these debilitating emotions. It’s time to find your “Saving Grace” Saving Grace is an original role playing game that keeps to traditional roots. Conceived as a 16-Bit RPG with traditional elements from Super Mario RPG, Final Fantasy VI, and even tabletop game Dungeons & Dragons, this new IP seek to invigorate the player’s experience and enhance the story. Saving Grace dives into the story of Roger Konvoc, a young man in the world of Tare, whose world had been shattered when his father was taken out of this life with no explanation. Riddled with doubt, Roger spends his days trying to cope with this burden at home, relying on family and the few friends he has left to make his days remotely bearable. Fate, however, thrusts him on an unwanted journey. Roger then finds the will and strength to get through the unexpected adventure he's on. Traveling from a city of canvas, through halls of knowledge, to standing up with rebels against an inexorable and tyrannical army. Travel along as Roger, through allies, friendship and experience, finds a purpose to keep going. Saving Grace is an original story, with a wide range of potential features, including: A rich story of good and evil, with unexpected twists, in a world for players to explore. 13 playable characters, each with their own background,, abilities, and stats to customize the party and take down the opposition. New mechanics like having a character’s mental state affect their behavior in battle, and team combo attacks which depend upon team party members and their level of trust in the player. Time honored RPG elements are not neglected in favor of the new mechanics: Difficult dungeons, utilizing multiple character combinations to create the ultimate team, toppling villainous champions, completing rewarding side quests, and searching the different lands for secrets. Multiple ways to level up: 3 varieties of leveling trees, such as (1) Base stats; (2) Skills; and (3) emotional strength, which determines the strength of team combo attacks and the power of one's own emotions. Unique spirits that embody the raw emotion of man and beast, ready to be found to improve the abilities of the party. The story has been set, but how the story is to be told is still yet to be decided by innovators (That's where you come in). Currently, our group is looking for (1) Concept artist and (1) Pixel Artist: Concept Artist - We are looking for creative artists who wish to show off their own skills. We are excited to show off new talent, as well as those looking for a challenge to breathe creation into a game. Full descriptions are available to explain details we are looking for, but style is up to the artist (within reason). Great way to get your name out there as all art will be credited to their respective owners. Pixel Artist - Looking for a 16 bit high resolution pixel artist, to have similar aesthetics to the golden years of RPGs. Will need both background and sprite modeling/animation experience, unless multiple artists join the project. Please send either portfolio or example work. Even though we are a small group, we pulled a small budget for each role. In addition, the Pixel artist role will continue on into This role can continue on into the full development of the game and will receive a portion of the Kickstarter revenue Looking to get demo developed by end of year 2018. Ful game is currently TBD So if you're interested in having a say in a grand project and have your ideas come to life and be apart of a great team environment, then this is the project for you! And if you're interested in helping in other aspects of the game, feel free to message with what you would like to aid in!
  11. Hello. To begin with, please accept my apologies for my English. I'm a beginner artist and need a programmer to create my (our) first game. The idea of the game is an ordinary platformer in pixel style. Yes, an ordinary platformer, yes, I do not want to create my first game, not worse than the witcher of the third. I am perfectly aware of the fact that my skills and experience will suffice for a simple but interesting game. That's why I'm going to create something simple, but at the same time, exciting. The game is called "Mission - the bread". Short story: the boy's mother, asks him to buy bread. The guy opens the door and finds on the way to the bread, trouble on his little ass. (The world is fantastic - and accordingly, it is inhabited by different creatures and inherent magic.) The game will have nine locations: 1 - the swamp. 2 - mountains. 3 - snow desert 4 - cave with slugs 5 - in the clouds 6 - Fireflies Forest 7 - locality with flying islands 8 - village 9 - cemetery Each location will have 9 scenes. In every biome. there will be three kinds of different evil creatures with one boss. The protagonist will have the opportunity to buy in the store a variety of weapons and a few spells. Money he can get for killing creatures. If you are interested in the project, please contact me here, email or a discord.( email: ilovedigitalart15@gmail.com ) (discord: Samuel Leeroy#1091) After contact with me, I will give you more detailed information about project. It is also very important that you can give each day to the project. I know the flexible framework is a useful thing. But, we will have exactly 45 days to finish this project. You must understand that even if this is a small and harmless project, I take it very seriously. If this game can earn anything from donations or advertising, the money will be divided by 50% Here are some developments and also my instagram: https://www.instagram.com/samueleeroy/ Thank you for your attention, have a good day! .
  12. Hey, me and my team participated in a local game jam last month, we'd love if you could give us some feedback on it! Also, we're just one place behind in the regional ranking of the game jam, and if you guys could vote on us we'll be able to go to the finals, which will happen in 2 months o/ The game is free and playable in the browser: https://bit.ly/VoteForAgatha We plan on improving this game to do an official launch later this year, so any feedback will be really appreciated! Aaand we'd be specially grateful if you could leave a rating on the jam page, the voting ends today 🙃 Agathas-Escape-Vitoria-2-Set-2018.mp4
  13. Hello, We know that the identity of the people you will work with is a very important thing, we are a group of two person and we are both about fifteen years old (coincidence right). I'm the programmer, I have three years of experience with C++ and my team partner is the graphic artist but he is no that good (I'm glad he probably wont read this topic) and there are too many graphic works for a game development so we have decided to look for an artist. Our project is a about a game, a 2D online RPG, we are working on this since February, specially me, I have coded many things as a server, a connection screen, a verification screen, a game menu and many other details. So basically all the things needed except the game itself so we could start the game and totally focus on it. I have already started the game development, actually I'm implementing an ECS architecture so it will be easier to make the game scriptable in the future. Me and my friend have also started to draw a tileset together (I have some basics you know). We need a pixel artist to join our team and help us. About the graphics: our tiles are 32x32 pixels, a player body will be like 64x160 pixels. Please don't hesitate to talk with me if you want more informations, I will leave here my mail (accfldekur@gmail.com) and my Discord (Rossinanté#6810), even though I would rather if you contact me on my Discord! Thank you very much for reading all this post!
  14. Hi, I'm looking for some artists for a top-down medieval pixel art game. It's a little hack and slash game with a pretty generic storyline. I'm currently designing the game and getting the basic mechanics programmed, and I have a friend that is willing to do some level design. Right now I would like an animated character and some environment tiles to get started with art. You will be following flavor text and a pretty rigid set of needed assets with descriptions. You then are free to add what you like and I will try to incorporate it into the game. Right now I have 17 levels (I am trying to reduce it to about 10 though) of varied sizes, but the game will be linear (there are 2 villages that will have a more open map though). Each of these levels have some new enemies and have their own environmental taste, so we might be looking at 20-30 creatures all together, mostly redundant environment tiles, and then several animated props and items. This is mostly meant to be a fun project, where you and I can meet developers and make a game or two together. I don't plan on selling this game, it is open source and written in Lua using Defold. If you'd like to see code I've written I can PM you my github, you can PM me here for more details! Thanks
  15. His Majesty, the PrefabI must admit that i’ve been a bit what you could call ‘lazy’ for the past few months. Why is lazy hyphenated? Well, because i’m not really lazy, i just tried to finish a game from 0 knowledge of Unity in under two years, which is not an easy task. I spent a lot of sleepless nights working, had a few burnouts, but one thing ultimately slowed down my progress to almost halt. When i finished most of the mechanics for the game and got to the most important part – making content – i simply couldn’t find any more willpower because of the tedious process involved in making hundreds of enemy waves. I believe someone with better coding skills could make a level editor and finish it much quicker, but with my knowledge, i had to do everything by hand and i kind of lost the motivation. Let’s delve a bit deeper into the problem. One of the things i really love about Unity is use of Prefabs. As someone who is not a programmer by trade, it was easy for me to relate to something drag and droppable, an object with belonging properties that is simple to instantiate and easy to manipulate without much hassle. Two years ago, one of my first questions on Unity Forums was about something that i didn’t even know what is called back then – Nested Prefabs. I couldn’t understand why instantiated objects could have child objects that have child objects who also have child objects can exist in the scene, but not as a Prefab. That pretty much broke my building blocks concept of making a game. Harsh red line reality checkAs you can see, i imagined the waves of enemies to be compiled of squadrons (as well as waypoint and single enemies, about which i wrote in my previous logs) which would be a Prefab object with lots of children objects (singular ships and their engine jets, weapon, tags for missile homing and so on). Unfortunately, Unity supports only one level of vertical nesting in the project, so while an object can have literally hundreds of children, non of them can have their own. Since i read that the Nested Prefabs are something that was planned more than five years ago and not yet in the making i tried a few assets that simulate Nested Prefabs but to no avail. You’ve probably seen the horrible reviews on the Asset Store, most of them are abandoned, buggy, slow or complicated. Since i found no decent asset that will enable me to work the way i imagined, i resorted to the usual workflow of instantiating a Prefab and populating it with components that i needed. The usual get this/set this workflowIt wasn’t too hard for single enemies, all i needed to do was instantiate appropriate objects on designated locations and that’s it. I learned a lot of things in the process, getting and setting the properties of many available components and their variables, the importance of pooling and the way it works, managing performance and so on. I must admit i had more than a handful of situations where i didn’t know how to overcome some of the challenges, but i’m grateful for them since they were an opportunity to learn something new through problem solving. When most of the stuff that make the core of the games look and feel were finished, the harder part of making a game in the true sense of words came. I won’t repeat myself too much, you can read more about my process of making waves in this and this log. In short, instead of dragging and dropping positions where i want the ships to spawn, assign the wanted behavior to each one depending on the wave structure and simply save all that as a prefab i need to: Have specific spawner types. That means single enemy, waypoint enemy and squadron enemy spawner with their locations. Make a specialized movement FSM’s for almost every enemy type that will dictate movement direction and scale of ships and ships’ children. For example, engine jet needs to be a separate object so it doesn’t flash with the ship upon bullet contact but it must be properly rotated and scaled depending on the spawning position and spawner parent of the parent (yeah, even i lost it while reading). Assign more elements to pool which slows down the compilation time and time required to start the game. Instead of pooling one ship with all the needed components i need to pool the ship prefab, jet prefab, weapon prefaband in some cases multiple weapon prefabs so the pool size for ships is actually at least three times the size in terms of object number. I’m fairly certain that it’s better to have fewer objects to instantiate regardless of their complexity (number of components attached). Manually set the spawning position of each ship in the wave. This is the worst part, it got me completely devastated. I need spawners for assigning some general behaviors and general screen position, but all the fine arrangement of ships in the wave must be done by hand. Not completely, but i need to put the ships in the scene so i can get their coordinates, then copy them into the spawning FSM of the squadron. Sure, i need to position the ships with nested prefabs too, but only once and that’s it. Doesn’t sound like much of a fuss, but imagine having hundreds of waves to make with some of them having double digit number of enemies that need to be repositioned upon spawning. Set Position, Set Position, Set PositionI’m sure some people don’t even use prefabs but create instances and populate them on runtime and i presume some more C#-savvy people will find nothing unusual in this and develop their own systems for handling the situation, especially big teams. But i’m neither of those and, for the time being, i really need nested prefabs to finish what i’ve started. Prefabs are great game building blocks that further upgrade great tool that Unity already is and we should be really glad they are taking into account the needs of small or one man teams. I’m anxious to see further improvements that the new prefab system will bring to the table in the future versions. The post Ode to Nested Prefabs from a noob indie dev appeared first on Fat Pug Studio. View the full article
  16. Hi everyone! I'm an amateur pixel artist looking to work on a short-term project. I would like to be part of a team making a cute pixel game. It could be a top-down adventure, platformer, visual novel, or a simulation game as long as it's cute and makes use of pixel art. Here's my portfolio if you want to see what I'm capable of: https://artsybarrels.wixsite.com/barrels This will be a hobby project. I am willing to spend 5-10 hours a week on this. Once the team is complete we can think of what kind of cute pixel game we could make. Currently looking for: Programmer Game Designer Pixel Artist and possibly a Writer

    13 RONIN - DevLog #4 - Say hello to Ester!

    Ester (Eraserhead Animation Editor) is a new tool I've build that will make it easier for me to describe what different animations a spritesheet contains and their different characteristics e.g. how long each frame should be displayed. I can then export the description, as a json-file, and then together with the spritesheet load it into the game and use it to set up my "in game" animations. This is how Ester looks with a spritesheet loaded and one animation created: I'll easily admit that building this tool has been a detour that's taken far too much time from any actual game development, but please let me give you the background. Background 13 RONIN is a pixel-art game with animations based on spritesheets, just like the one below: The spritesheet together with a json-file describing the sheet are read into the game and turned into different animations. A process that works quite well. This is the "Draw"-animation beginning at row 3 and column 1 as described by the json-file below. In this example each frame is displayed for 150 milliseconds Same animation as above but with individual frame times The description file The description file started out quite small, but since I prefer to hard-code as few things as possible and also want room for adjustment, the file grew. This is a file describing the "Draw"-animation starting at row 3 and column 1: { // General description of the spritesheet "spritesheet": { // Size of sheet in columns and rows, // where each cell is a sprite "gridSize": { width: 13, // The sheet has a size of 13 columns height: 5 // and 5 rows of sprites } // Size of a sprite in pixels "spriteSize": { width: 160, // Each sprite has a size height: 160 // of 160x160 pixels } } // Default values for animation frames "frameDefaults": { // Intended for describing hit-boxes and such. This // example would give a hitbox located at same position // as the sprite and of the same size "margin": { "top": 0, "right": 0, "bottom": 0, "left": 0 }, // Offset value used when positioning and drawing // sprites. "offset": { x: 10, // The sprites should be drawn 10 pixels y: 0 // to the right of the destination point } // Frame duration. Display each frame 200 milliseconds // before advancing to next frame "duration": 200 }, // Animations found in the spritesheet "animations": [ // An animation { // Name used for identification "name": "Draw", // OPTIONAL. Will override default setting "offset": { x: 0, // No offset for this animation y: 0 }, // OPTIONAL. Will override default setting "margin": { "top": 0, "right": 0, "bottom": 0, "left": 0 }, // OPTIONAL. Will override default setting. // Frame duration for this animation is 150 // milliseconds "duration": 150, // Start location in grid "index": { x: 0, // This animation begins with image at y: 2 // row 3 and column 1 }, // This animation contains 13 frames starting // at "index" "frameCount": 13, // OPTIONAL. Using this property it's possible to // set frame duration for individual frames "frames": [ ] } ] } Writing and maintaining the description files is very tedious and it's also very easy to make mistakes. Remember that the file above only contains one animation and that is an animation without any individual frame duration times. To get the animation seen in the second example above following "frames"-section has to be added: "frames": [ { "index": 0, "duration": 200 }, { "index": 1, "duration": 175 }, { "index": 2, "duration": 175 }, { "index": 3, "duration": 200 }, { "index": 4, "duration": 300 }, { "index": 5, "duration": 175 }, { "index": 10, "duration": 175 }, { "index": 11, "duration": 175 }, { "index": 12, "duration": 1000 } ] We now have 3 pages of json and only one animation described. I grew tired of this and felt a need for a tool to assist me in describing and tuning the animations as well as automatically generating the json. Together with a desire to improve my skills as a front-end developer I started the development of Ester. Tech Ester is an Electron based application using React as UI-framework. I'm not really a front-end developer and since this isn't the main focus of the blog I won't dwell and deeper into the subject, but for anyone interested in trying out these technologies, there are a lot of posts written on the subject, so just use your magic friend google and you'll get lucky. And please feel free to browse or clone the Ester-repo. I think the project- and component-structure is quite good, but I'm sure there could be a lot of improvements made on the JavaScript- and CSS-code. If you find something really horrific please let me know. Using Ester If you would like to give Ester a try, please visit my BitBucket account for further instructions. If you find Ester useful, run into bugs or have ideas for new features, please don't hesitate from letting me know. Please be aware that this is not a finished product, but something I'm working on as part of the game development project. Fatal crashes might happen and breaking changes be introduced. You're also very welcome to clone and extend the product yourself. Happy coding! /jan. NOTE. As always, everything I show, share or write about here is work under progress and subject to change.
  18. Hi everyone! Just want to everyone to know that I have published DevLog #4 for my upcoming game 13 RONIN, a pixel-art samurai fighter in the spirit of classics like The way of the exploding fist and Barbarian. In DevLog #4 I'm writing about my new tool Ester. It's an editor for tuning spritesheet animations and generating json-files describing the animations. For anyone doing spritesheet animations it might be worth checking out. Happy coding! jan.
  19. I am working on a 2D SideScroller game in my own made game engine using SFML and C++.I am searching for 2D artists,especially pixel artist for making and animating characters,backgrounds and other props that can be made in any Drawing Program.The artist will become part of the team of Hammer Studios and he got a part of the Revenue Sharing.If you are interested send me a mail at:ghiurcutaandrei@gmail.com .If you are not an artist but you want to be a part of our Team,Soon we will be recruiting an C++ AI programmers that worked in SFML/OpenGL. We work together using Discord.

    13 RONIN - DevLog #3 - The movie analogy

    Here in Stockholm it's been unusually hot and dry for this season of the year and I'm quite convinced that the pharmacies have broken a new record in anti-histamine sales. Last night we were finally blessed with thunder and rain and today the air is cool and nice and the pollen gone. I've sneezed quite a lot the last couple of weeks but I've also done some coding. My primary focus has been building an animation framework for use in intro, cutscenes and background movements and coding an editor for animating sprites. Ester (Eraserhead animation editor) will be the subject of an upcoming dev log and this dev log will be about the animation framework. This is an animation demo and not part of the game Animation framework The purpose of the animation framework is to ease setting up and running sequences of multiple animations. The need for this arose with my desire to create an animated intro with objects moving in different patterns. But I will also use this framework for pre- and post-fight-animations as well as background animations. When finished the animation framework will contain: Support for spritesheet-based animations Builders for setting up animations by code Simple script-language for setting up scenes Loader and parser for script-files In addition to this, I will probably build an editor to use with the script-language for trying out and previewing animations. The movie analogy When designing and naming the building blocks of the framework I've taken a "movie scene"-approach and used a nomenclature found in movie scripts. That gave me following main classes: Scene Actor Action Animation "Animation" might not be a name known from movie scripts, but I kept the name to encourage its use outside of the "animated scene" context. As long as you keep track of calling the update- and draw-methods both actors and animations can be used without a scene. A simplified diagram describing the relationships between the classes Scene Think of a scene just the like a scene in a movie or a theater. It's a "room" where something takes place. A scene can have a name, background image and any number of actors. You draw it on the screen by calling its Draw-method. Background for our demo Actor Unlike in a movie or theater, an actor is not only characters but all things living or dead that has it's own image and is separate from the background e.g. character, bullets flying, rising sun. An actor has a location, it can be visible or hidden, and has a collection of actions to perform that can be looped when done. An actor also has an animation as it's current "gesture". Action Just like in the movies, an action is something an actor does, i.e. an actor will act according to its actions. Some of the available actions are: Show - draw animation Hide - don't draw animation SetPosition - set position of actor BasicMove - move actor to destination with given velocity and acceleration ChangeGesture - change animation Animation An animation is based on a spritesheet, start index in the sheet and a frame count. This determines how the actor will appear on the screen. A note on naming. The property for the animation is named Gesture in the Actor-class, that is a choice I made to keep the movie analogy consistent. I've named the class Animation to encourage use of it outside of the "animated scene"-context. Our famous actor doing one of it's gestures How to To create the scene in the demo above following steps have to be made: Load content Create an animation sheet configuration Create an animation factory Create an actor Create the scene Start the scene Draw scene Step 1 - 5 can all be done in the Initialize-method of the Game-class. Step 1 - Load content As a first step we load background- and spritesheet-images as textures. var background = Content.Load<Texture2D>("Animation_demo_background"); var texture = Content.Load<Texture2D>("Animation_demo_spritesheet"); The demo spritesheet Step 2 - Create animation sheet configuration Then we create a configuration describing animations found in the spritesheet. This object will later be used as argument to our animation factory. var sheetConf = AnimSheetConfigBuilder .Begin() .Name("Samurai gestures") .GridSize(new Point(13, 4)) .SpriteSize(new Point(160, 160)) .DefaultFrameDuration(150) .AddAnimation("Idle", new Point(0, 0), 6) .AddAnimation("Bow", new Point(0, 3), 11) .AddAnimation("Draw", new Point(0, 2), 13) .AddAnimation("Walk wo sword", new Point(0, 1), 8) .AddAnimation("Walk w sword", new Point(0, 4), 8) .Build(); We create a configuration describing a spritesheet with a size of 13 columns and 4 rows where each sprite has a size of 160 x 160 pixels. The spritesheet is called "Samurai gestures" and default frame duration for all animations in this sheet is 150 milliseconds. It contains four different animations. Note that all names must be unique. Step 3 - Create animation factory When the sheet config is ready this step is easy. Call the AnimationFactory-constructor passing in the spritesheet texture and the sheet configuration. Our factory is ready. var animFactory = new AnimationFactory(texture, sheetConf); Step 4 - Create actor Just as it takes some time for an actor to prepare for a big movie role, it takes some coding for us to set up the actor for our scene. var actor = ActorBuilder .Begin(animFactory) .Actions( actionBuilder => { return actionBuilder .Hide() .SetPosition(new Point(-120, -4)) .ChangeAnimation("Walk wo sword") .LoopAnimation() .Show() .Move(new Point(-60, -4), 0.1f, 0.0f) .ChangeAnimation("Bow") .WaitForAnimation() .ChangeAnimation("Walk wo sword") .LoopAnimation() .Move(new Point(110, -4), 0.1f, 0.0f) .ChangeAnimation("Draw") .WaitForAnimation() .ChangeAnimation("Idle") .WaitForAnimation() .ChangeAnimation("Walk w sword") .LoopAnimation() .Move(new Point(312, -4), 0.1f, 0.0f) .Build(); }) .Build(); actor.Loop = true; Here we use the ActorBuilder in combination with the ActionBuilder to create the actor and the collection of actions to perform. All these actions will be performed in sequence and when done the actions will, thanks to the "actor.Loop = true;" statement, be restarted. Step 5 - Create scene As a last building step we tie everything together by creating our scene, and for this, we also have a dedicated builder. _scene = SceneBuilder .CreateScene(animFactory) .Name("Demo") .Background(background) .AddActor(actor) .Build(); Our scene is now ready. Step 6 - Start scene If you run the project you'll find that nothing happens. That's because we haven't included the scene in the game loop yet. Add following lines to the Update-method: if (_scene.State == State.NotStarted) _scene.Start(); _scene.Update(gameTime); Step 7 - Draw scene Still, nothing happens. It's because we're still not drawing the scene. And following line to the Draw-method: _scene.Draw(_spriteBatch, Vector2.Zero); Run the project and enjoy! The future You're as always more than welcome to download the code and use it in any way you like, but since it's still early days please regard it more as inspiration than a working framework. I'm sure there are lots of bugs. And changes will come. If not discouraged, visit my BitBucket-account and get going, or wait for an announcement of a more stable version. Please visit Eraserhead Studio for more. Happy coding! /jan. NOTE. As always, everything I publish here or on any other site is work in progress and subject to change.
  21. So much has changed since the initial "Twin Demon Slayers" game (made for a game jam), that was the origin of all this. First of all, I will stop using the original game title from the jam. The current game evolved into something much more than its original. One thing remained contstant though - its combat system does resemble the one XCOM. Also, I've decided to put the game in a steampunk-dystopian settings - hence the title of this blog post. Anyway, here's the progress made in May (well, in the second part of May - as previous blog post was written on May 14th): 1. Overwatch mechanism 2. New graphics 3. UI/QoL changes 4. Performance improvements 1. Overwatch mechanism The idea behind overwatch is simple - a character can spend their action to going into an overwatch state - this will allow them to perform a ranged attack during enemy turn - if the enemy moves within the shooting range. Such mechanics allows for more tactical depth during combat - but let's not get into details here, as XCom has already exercised this concept. Anyway - do see it in action below: both player characters enter overwatch (and an icon indicating this is being displayed). Then they take their reaction shots when the enemy starts closing in on them. 2. New graphics So I knew I told myself to wait with the graphics until all core game features are ready. However I came across opportunity to work with a great pixel artist (whose name is Kurt Prieto) and I didn't want to waste such chance. The result of our cooperation are this first concepts of the rogue/ranger character type - check them out: Rogues, baby! Now, the important thing here was to make sure that the game environment (which is tile-based) works correctly with new character model. Previously (when using my 'programmer art') this was easy - a character was of the same height as other tiles. This did not look realistic, but at least did not introduce any extra issues. The new models are taller, and I had two possible ways to make sure that they blend in the tile-based word: #1 I will make sure that they are still of the same height as the other tiles, or #2 The character models will be higher than the tiles. Big-tile approach on the left, small-tile on the right. For me, the 2nd one is a definite winner. Approach #1 was looking too rough for me. The price of making sure that the characters and map tiles always take up the same cell space came with a huge price - the allowed character density was not good enough. Also, the walls become too bulky; basically the game scene contained too much empty space. So I've chosen approach #2. This of course introduced other issues - especially with visibility behind parts of the walls, that I will address in a while. 3. UI/QoL changes So a good and smooth user experience is something I always value the most in computer games. I will make sure that the same could be said about the game I am working on. First major improvement is the cover display at the movement target - basically the user is able to see the cover that each obstacle could provide. Also, if the character would be flanked at the given location, the covers are displayed on yellow. Yeah, I know that enemies are using the same sprite as the player character. You can already see an issue with this in the gif above: the user is not able to see the cover information on the tiles which are hidden behind walls. Same for the display of characters themselves. Maybe such walls should become transparent? Another improvement is targets preview. When the player holds the alt key, they are able to see all potential ranged targets that will become available at the given location - along with flanking information. Neat features, aren't they? And sure, XCom had them too. And as they were extremely helpful there, I am sure that they will be useful in my game as well. 4. Performance improvements Yes, I know that early optimization is a bad practice - but surely not in a situation when the pathfinding code starts to tank the framerate when it has to deal with 50x50 tile map. And sadly that was happening before the improvements. The solution was simple - to make sure that the A* pathfinding algorithm only works on a limited part of the map; basically it now does not perform the calculations outside of the movement range of a character. What's next? I am constantly working on making the tactical combat playable. My plans for June include: area of effect attacks, including grenades, armour mechanics (reducing damage, armor piercing mechanism), changes to ammo mechanics (will try out a different approach than the one in XCom!). Stay tuned and let me know what you think so far!
  22. kirito

    i need help

    hey guys i wanna know how much of everything it costs to make a game kind of aberoth if u haven't heared about it take a fast look here:http://aberoth.com
  23. 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 !
  24. DelicateTreeFrog

    OpenGL GLSL: 9-slicing

    I have a 9-slice shader working mostly nicely: Here, both the sprites are separate images, so the shader code works well: varying vec4 color; varying vec2 texCoord; uniform sampler2D tex; uniform vec2 u_dimensions; uniform vec2 u_border; float map(float value, float originalMin, float originalMax, float newMin, float newMax) { return (value - originalMin) / (originalMax - originalMin) * (newMax - newMin) + newMin; } // Helper function, because WET code is bad code // Takes in the coordinate on the current axis and the borders float processAxis(float coord, float textureBorder, float windowBorder) { if (coord < windowBorder) return map(coord, 0, windowBorder, 0, textureBorder) ; if (coord < 1 - windowBorder) return map(coord, windowBorder, 1 - windowBorder, textureBorder, 1 - textureBorder); return map(coord, 1 - windowBorder, 1, 1 - textureBorder, 1); } void main(void) { vec2 newUV = vec2( processAxis(texCoord.x, u_border.x, u_dimensions.x), processAxis(texCoord.y, u_border.y, u_dimensions.y) ); // Output the color gl_FragColor = texture2D(tex, newUV); } External from the shader, I upload vec2(slice/box.w, slice/box.h) into the u_dimensions variable, and vec2(slice/clip.w, slice/clip.h) into u_border. In this scenario, box represents the box dimensions, and clip represents dimensions of the 24x24 image to be 9-sliced, and slice is 8 (the size of each slice in pixels). This is great and all, but it's very disagreeable if I decide I'm going to organize the various 9-slice images into a single image sprite sheet. Because OpenGL works between 0.0 and 1.0 instead of true pixel coordinates, and processes the full images rather than just the contents of the clipping rectangles, I'm kind of stumped about how to tell the shader to do what I need it to do. Anyone have pro advice on how to get it to be more sprite-sheet-friendly? Thank you!
  • Advertisement

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!