Jump to content
  • Advertisement

Search the Community

Showing results for tags '2D'.

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 963 results

  1. jbadams

    Free art assets

    The older version of this topic is getting quite dated, with some broken links and notable omissions, so after 8 years it's high time for an update. This is a list of free graphics for games but aims to avoid sprites ripped from existing games in favour of ones that may be legally used in your work. Please feel free to submit your own suggestions, but note that any off-topic posts and all spam may be removed from this topic. Be sure to check the licensing terms before using any of the linked graphics. Free Airplane Sprite Pack A free .zip package right here on GameDev.net containing various aircraft from different (mostly side or top down) angles. Includes fighter jets, bombers and cargo planes. Provided by our very own (but recently inactive) @Prinz Eugn (Mark Simpson). Free for any use with attribution to the author. Kenney Assets A huge collection of freely available assets (both 2d and 3d) for many different styles of games, available under CC0 1.0 Universal licensing terms. In addition to the free assets, Kenney's work is supported by the sale of cheaply available asset packs which you'll find linked at the top of the page, and the fantastic Asset Forge which allows the easy creation of customised game assets. SpriteLib GPL A free .zip package of 2d games sprites by Ari Feldman, now available under a Common Public License Version 1.0. Unfortunately, the original website is no longer online, the source website is back online HERE, but the sprite package is attached to this post for you to download: spritelib_gpl.zip Contains sprites for a platform game, Pong/Breakout/Arkanoid style games, overhead shooter in the style of 1943, and a maze combat game in the style of Tank Force. Lost Garden Freely provided graphics from Daniel Cook of Lost Garden & Spry Fox, under licensing terms explained on this page. Danc's Miraculously Flexible Game Prototyping Tiles Danc's Miraculously Flexible Game Prototyping Graphics for Small Worlds 250 free hand-drawn textures Tyrian ships and tiles Tiles for Zelda-like RPG Complete set of 8-bit Sinistar clone graphics Unreleased RTS Postmortem: 'Hard Vacuum' (graphics near end of post) In addition to the above, Daniel also has a couple of 'Game Prototyping Challenges' where he provides the basic outline of a game design and challenges people to implement and iterate on the design to hopefully create a fun game. A couple of these challenges come with freely provided graphics, although in this case the assets are intended for use if undertaking the challenge (a fantastic learning exercise!) in question rather than for general use: Prototyping Challenge: Play With Your Peas Prototyping Challenge: Fishing Girl Glitch - Public Domain Art (and code) All assets from a defunct web-based MMO game, made freely available under CC0 1.0 Universal licensing terms. Get it HERE. Most of the graphics are available in .fla and .swf formats. Quaternius Quaternius offers a large range of basic low-poly models with CC0 licensing. You can also support his efforts by purchasing all of his sets in a single file for $1. OpenGameArt.org OpenGameArt have a huge collection of different art, constantly added to by new and existing contributors. Quality and style vary, but there is some really good material available if you're willing to spend some time looking. Note that licensing terms vary, so be sure to check each item's license before use. Game-Icons.net At the time of writing, Game-Icons.net offers 3044 free icons in SVG and PNG formats with CC BY 3.0 licensing (which requires attribution). The built in editor on the site will allow you to alter the icon size and apply some simple properties (such as background type and colour). AI War 2.0 graphics library Graphics from the space RTS game AI War: Fleet Command. Free for use by indie developers. Get it HERE. Reiner's Tilesets 2d and 3d graphics (use the menu at the top of the site to view categories) available under these licensing terms. MakeHuman MakeHuman is an open source (AGPL licenced) tool for creating 3d characters. Output characters can be used under a permissive CC0 license under certain conditions. GameDev.Market There are some free assets available via the GameDev Marketplace (our very own asset store!). Looking to hire an artist for custom work? Check out our Contractors section, or advertise your project in our Game Jobs board (for paid commercial projects) or Hobby Classifieds forum (for free hobbyist projects). Looking to purchase pre-made assets? Try the GameDev Marketplace, or other asset stores such as GameDev Market (not affiliated with us!), the Unity Asset Store, the Unreal Marketplace, or others.
  2. Hello there! I'd like to show you my new game - Hurry Birdie. It's an endless game where you have to dodge tree brunches and stones falling from above. Your birdie flies from side to side and speeds up when you press the screen. Features: * Nice design; * You can unlock new birdies; * Easy to play; * Leaderboard; * Good timekiller. Download here: iOS: https://itunes.apple.com/app/id1434970622?mt=8 Android: https://play.google.com/store/apps/details?id=com.abdullakh.hurrybirdie
  3. RidiculousName

    FXML and CSS in JavaFX

    Would any readers please explain to me the differences between FXML and CSS? I just want to create a basic GUI in JavaFX. For example does one work better on linux? Is one easier to learn than the other? What are their benefits and drawbacks?
  4. Hey GameDev! I'm currently sitting with a cool 2D game concept and time/team to get into a decently good development cycle, but torn between several engines. I'm currently considering: Java or Kotlin - LibGDX C# - SFML bind(SFML.NET), Unity, Godot C++ - Unreal, Cocos2d-x, SFML I'm not exactly sure about language either; With my interests lying mostly in Java/Kotlin area, they are pretty slow. C# is mostly referred as go-to game dev language, but SFML is pretty low-level(and won't run on my Linux Mono setup duh) and I personally don't like Unity too much as it's pretty heavy for my taste and seems somewhat messed up with its truckload of different features. Maybe it's not true and I've been approaching it from the wrong end since everyone seems to recommend it? Godot is there, too, but its C# support is in beta stage right now and they themselves advise not to use it for serious projects. I also considered C++ as I'm somewhat fluent in it, but it's pretty low-level and shooting myself in a leg seems to slow down the development and clutter the code too much. Maybe it's not true for some engines/APIs? Not sure. Just in case, I also know Python 3 and JS basics in case there is a decent solution(though I was unable to find it). If there are good options I'm missing for listed languages - please let me know as well!
  5. Color Fiesta is a collection of best and most addictive color matching games with minimalism graphics and unique game level design that suitable for kids and adult. You can play the best color matching game like Match And Catch, True Color, Color Roulette which are easy to learn and fun to master in one game. As a color matching game lover, you don't need to spend time searching new brain teasers any more. We will give you a ONE-STOP game experience from now on!Games you can play in Color Fiesta★★ Match And Catch ★★Simply rotate the blocks so that the side of the block that face the falling ball has the same color with the falling ball. Make sure you are reacting fast enough to keep rotating the block to match the color of falling ball.★★ True Color ★★There are several options appear on the screen, only tap on the options that the color is match with the text of the option. Stay patient and look carefully before you make your choice!★★ Color Roulette ★★The roulette is keep rotating, make sure you only tap on it when the section is match with the color of the pointer! Beware, it's keep speeding up!★★ And many more games ★★We will constantly adding new game so that you can keep having fun with us without spending much time search for your favorite games!Time and patient is the key for you to complete all levels.Please feel free to leave your review or feedback to us @ bigcheeseapp@gmail.com! We'd love to hear from you! Download now from Google Play or scan the QR code below Download now from App Store: Coming Soon...
  6. Brizzler

    Boof Master Reviews

    Hey Everyone, I'm new here and I'm looking to get some feedback on my new game. It's kind of addictive, so I'm thinking about adding some network based features. If you're up for it, please let me know what you think Here is the link: Boof Master For UWP Here's a quick video:

    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.
  8. Project Title:ArcturonDescription:Arcturon is a 2d space singelplayer sandbox game where the player must "fight" or "flight" in a dying universe plagued by wars,universal catastrophes and so forth.The game is set in dimensions/realms where there are currently 6 realms/universes to go to "More might be planned"..1.being the main universe that is infinite in size but this is a statement that is shrouded as it is actively getting destroyed. 2.Xeon: The "Energy Void" as they call it is a realm that is a mystery this realm is full of space-time rifts that can spawn any sort of creature randomly and gravity is majorly different compared. 3.Crimaxtion:This realm is called worst than hell itself is a universe/realm so hostile this is where the true survival test will be given.There is more to this but thats just a quick rundown. For me this is a hobby project i have no true planning or motive for revenue.I would want to see where this goes first if this becomes some sort of big thing payment would be discussed if required.Im posting this as i believe that if im the one doing the programming and someone else can do the art at least for the majority it could get a lot of load off my back and the game can finally make major strides again in progression and feel.I have prototypes and some current snapshots should they need to be analyzed.Talent Required:2D Artist (How Many I Can Take)That have the ability to draw characters,npcs and hostile foes.The ability to animate if possible.Bonus.The ability to draw environments like parallax.Bonus.More details will be laid out to whoever accepts all this.If anymore information is required please Contact,PM or Reply. Also the formatting seems to be acting odd so sorry for these black lines of text?
  9. I'm creating a textbox for my UI, and I found a way to place the cursor where the user clicks on the text. Here is all of my code: using System; using System.Collections.Generic; using System.Timers; using System.Linq; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; namespace TextEditorTest { public class Cursor { public int CharacterIndex = 0; public string Symbol = "|"; public Vector2 Position = new Vector2(0, 0); public int LineIndex = 0; public bool Visible = true; } /// <summary> /// This is the main type for your game. /// </summary> public class Game1 : Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; private GapBuffer<string> m_Text = new GapBuffer<string>(); //private List<Vector2> m_CharacterPositions = new List<Vector2>(); private Dictionary<int, Vector2> m_CharacterPositions = new Dictionary<int, Vector2>(); private List<Rectangle> m_HitBoxes = new List<Rectangle>(); private bool m_UpdateCharPositions = true; private const int NUM_CHARS_IN_LINE = 10; private Vector2 m_TextEditPosition = new Vector2(50, 0), m_TextEditSize = new Vector2(250, 320); private SpriteFont m_Font; private Timer m_CursorVisibilityTimer = new Timer(); private Cursor m_Cursor = new Cursor(); private InputHelper m_Input = new InputHelper(); private int m_NumLinesInText = 1; private bool m_HasFocus = true; private bool m_MultiLine = true; private bool m_CapitalLetters = false; //For how long has a key been presseed? private DateTime m_DownSince = DateTime.Now; private float m_TimeUntilRepInMillis = 100f; private int m_RepsPerSec = 15; private DateTime m_LastRep = DateTime.Now; private Keys? m_RepChar; //A character currently being pressed (repeated). private Vector2 m_TextPosition = new Vector2(0, 0); //Coordinate for anchoring the text. public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; m_Cursor.Position = m_TextEditPosition; m_CursorVisibilityTimer = new Timer(100); m_CursorVisibilityTimer.Enabled = true; m_CursorVisibilityTimer.Elapsed += CursorVisibilityTimer_Elapsed; m_CursorVisibilityTimer.Start(); IsMouseVisible = true; Window.TextInput += Window_TextInput; m_TextPosition = m_TextEditPosition; } private void CursorVisibilityTimer_Elapsed(object sender, ElapsedEventArgs e) { if (m_HasFocus) { if (m_Cursor.Visible) m_Cursor.Visible = false; else m_Cursor.Visible = true; } } /// <summary> /// The text in this TextEditor instance, containing "\n". /// </summary> private string TextWithLBreaks { get { string Text = ""; foreach (string Str in m_Text) Text += Str; return Text; } } /// <summary> /// Returns a line of text. /// </summary> /// <param name="LineIndex">The index of the line of text to get.</param> /// <returns>The line of text, as indicated by the line index.</returns> private string GetLine(int LineIndex) { try { if (TextWithLBreaks.Contains("\n")) return TextWithLBreaks.Split("\n".ToCharArray())[LineIndex]; } catch(Exception) { return ""; } return TextWithLBreaks; } /// <summary> /// Make sure cursor's index is valid and in range. /// </summary> private void FixCursorIndex() { if (m_Cursor.CharacterIndex < 0) m_Cursor.CharacterIndex = 0; if (m_Cursor.CharacterIndex == m_Text.Count) m_Cursor.CharacterIndex = m_Text.Count - 1; } /// <summary> /// Make sure cursor's position is valid and in range. /// </summary> private void FixCursorPosition() { if (m_Cursor.Position.X < m_TextEditPosition.X) m_Cursor.Position.X = m_TextEditPosition.X; m_UpdateCharPositions = true; UpdateCharacterPositions(); UpdateHitboxes(); //Find the curor's real character index. int RealCharIndex = m_Cursor.CharacterIndex; RealCharIndex = (RealCharIndex < m_CharacterPositions.Count) ? //Make sure it doesn't overflow. RealCharIndex : m_CharacterPositions.Count - 1; if (RealCharIndex < 0) RealCharIndex = 0; //Make sure it doesn't underflow. //Adjust the character's position based on the real character index. if (m_Text.Count > 0) { Vector2 IndexPosition = m_CharacterPositions[(RealCharIndex > 0) ? RealCharIndex : 0]; if (m_Cursor.Position.X < IndexPosition.X) m_Cursor.Position.X = IndexPosition.X; if (m_Cursor.Position.Y != IndexPosition.Y) m_Cursor.Position.Y = IndexPosition.Y; } } /// <summary> /// The text in this TextEditor instance, without \n /// (except for those explicitly added by pressing backspace). /// </summary> public string Text { get { string Text = ""; foreach (string Str in m_Text) Text += Str; return Text.Replace("\n", ""); } } /// <summary> /// Returns the width of a character in this font. /// </summary> /// <returns>The width of the character in floating point numbers.</returns> private float CharacterWidth { get { return m_Font.MeasureString("a").X; } } /// <summary> /// Returns the width of a capitalized character in this font. /// </summary> /// <returns>The width of the capitalized character in floating point numbers.</returns> private float CapitalCharacterWidth { get { return m_Font.MeasureString("A").X; } } /// <summary> /// Returns the height of a character in this font. /// </summary> /// <returns>The height of the character in floating point numbers.</returns> private float CharacterHeight { get { return m_Font.MeasureString("a").Y; } } /// <summary> /// Returns the height of a capitalized character in this font. /// </summary> /// <returns>The height of the capitalized character in floating point numbers.</returns> private float CapitalCharacterHeight { get { return m_Font.MeasureString("A").Y; } } /// <summary> /// Returns the last line of text in the gap buffer. /// </summary> /// <returns></returns> private string CurrentLine { get { if (m_Text.Count > 1) { if (TextWithLBreaks.Contains("\n")) { string[] Lines = TextWithLBreaks.Split("\n".ToCharArray()); return Lines[Lines.Length - 1]; } else return TextWithLBreaks; } if (m_Text.Count > 0) return m_Text[0]; else return ""; } } /// <summary> /// The control received text input. /// </summary> private void Window_TextInput(object sender, TextInputEventArgs e) { if (e.Character != (char)Keys.Back) { int Index = TextWithLBreaks.LastIndexOf("\n", m_Cursor.CharacterIndex); if (Index == -1) //No occurence was found!! { if (Text.Length <= NUM_CHARS_IN_LINE) { AddText((m_CapitalLetters == true) ? e.Character.ToString().ToUpper() : e.Character.ToString()); m_CapitalLetters = false; m_UpdateCharPositions = true; return; } else { if (m_MultiLine) { AddNewline(); return; } } } if ((m_Cursor.CharacterIndex - Index) <= NUM_CHARS_IN_LINE) { //If the cursor has moved away from the end of the text... if (m_Cursor.CharacterIndex < (m_Text.Count - (1 + m_NumLinesInText))) { //... insert it at the cursor's position. m_Text.Insert(m_Cursor.CharacterIndex, (m_CapitalLetters == true) ? e.Character.ToString().ToUpper() : e.Character.ToString()); m_CapitalLetters = false; m_UpdateCharPositions = true; } else { AddText((m_CapitalLetters == true) ? e.Character.ToString().ToUpper() : e.Character.ToString()); //... just add the text as usual. m_CapitalLetters = false; m_UpdateCharPositions = true; } } else { if(m_MultiLine) AddNewline(); } } } /// <summary> /// Adds a string to m_Text, and updates the cursor. /// </summary> /// <param name="Text">The string to add.</param> private void AddText(string Text) { m_Text.Add(Text); m_Cursor.CharacterIndex++; m_Cursor.Position.X += CharacterWidth; } //Can the cursor move further down or has it reached the end of the textbox? private bool m_CanMoveCursorDown = true; /// <summary> /// Adds a newline to m_Text, and updates the cursor. /// </summary> private void AddNewline() { m_Text.Add("\n"); m_Cursor.CharacterIndex++; m_Cursor.Position.X = m_TextEditPosition.X; m_Cursor.LineIndex++; //Scroll the text up if it's gone beyond the borders of the control. if ((m_TextEditPosition.Y - TextSize().Y) < (m_TextEditPosition.Y - m_TextEditSize.Y)) { m_TextPosition.Y -= CapitalCharacterHeight; m_CanMoveCursorDown = false; m_UpdateCharPositions = true; } if (m_CanMoveCursorDown) m_Cursor.Position.Y += CapitalCharacterHeight; m_NumLinesInText++; } /// <summary> /// Removes text from m_Text. /// </summary> private void RemoveText() { FixCursorIndex(); FixCursorPosition(); if (m_Cursor.Position.X > m_TextEditPosition.X) { m_Text.RemoveAt(m_Cursor.CharacterIndex); m_Cursor.CharacterIndex--; m_Cursor.Position.X -= CharacterWidth; } if (m_Cursor.Position.X <= m_TextEditPosition.X) { if (m_Cursor.LineIndex != 0) { m_Cursor.Position.X = m_TextEditPosition.X + m_Font.MeasureString(GetLine(m_Cursor.LineIndex - 1)).X; if (m_MultiLine) { m_Cursor.Position.Y -= CapitalCharacterHeight; m_Cursor.LineIndex--; m_NumLinesInText--; if (m_TextPosition.Y < m_TextEditPosition.Y) m_TextPosition.Y += m_Font.LineSpacing; } } } } /// <summary> /// Moves m_Cursor left. /// </summary> private void MoveCursorLeft() { if (m_Cursor.Position.X > m_TextEditPosition.X) { m_Cursor.CharacterIndex -= (((NUM_CHARS_IN_LINE + 1) - GetLine(m_Cursor.LineIndex).Length) + GetLine(m_Cursor.LineIndex).Length); m_Cursor.Position.X -= CapitalCharacterHeight; } //Scroll the text right if the cursor is at the beginning of the control. if (m_Cursor.Position.X == m_TextEditPosition.X) { if (m_TextPosition.X > m_TextEditPosition.X) m_TextPosition.X -= m_Font.LineSpacing; } } /// <summary> /// Moves m_Cursor right. /// </summary> private void MoveCursorRight() { if (m_Cursor.Position.X < (m_TextEditPosition.X + m_TextEditSize.X)) { m_Cursor.CharacterIndex += (((NUM_CHARS_IN_LINE + 1) - GetLine(m_Cursor.LineIndex).Length) + GetLine(m_Cursor.LineIndex).Length); m_Cursor.Position.X += CapitalCharacterHeight; } //Scroll the text right if the cursor is at the beginning of the control. if (m_Cursor.Position.X == m_TextEditPosition.X) { if (m_TextPosition.X < m_TextEditPosition.X) m_TextPosition.X += m_Font.LineSpacing; } } /// <summary> /// Moves m_Cursor up. /// </summary> private void MoveCursorUp() { if (m_Cursor.Position.Y > m_TextEditPosition.Y) { m_Cursor.LineIndex--; m_Cursor.CharacterIndex -= (((NUM_CHARS_IN_LINE + 1) - GetLine(m_Cursor.LineIndex).Length) + GetLine(m_Cursor.LineIndex).Length); m_Cursor.Position.Y -= CapitalCharacterHeight; m_CanMoveCursorDown = true; } //Scroll the text down if the cursor is at the top of the control. if (m_Cursor.Position.Y == m_TextEditPosition.Y) { if (m_TextPosition.Y < m_TextEditPosition.Y) m_TextPosition.Y += m_Font.LineSpacing; } } /// <summary> /// Moves m_Cursor down. /// </summary> private void MoveCursorDown() { if (m_Cursor.Position.Y < (m_TextEditPosition.Y + m_TextEditSize.Y)) { m_Cursor.LineIndex++; m_Cursor.CharacterIndex += (((NUM_CHARS_IN_LINE + 1) - GetLine(m_Cursor.LineIndex).Length) + GetLine(m_Cursor.LineIndex).Length); m_Cursor.Position.Y += CapitalCharacterHeight; } else //Scroll the text up if the cursor is at the bottom of the control. { if ((m_TextPosition.Y + TextSize().Y) > (m_TextEditPosition.Y + m_TextEditSize.Y)) m_TextPosition.Y -= m_Font.LineSpacing; } } /// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } /// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // TODO: use this.Content to load your game content here m_Font = Content.Load<SpriteFont>("ProjectDollhouse_11px"); } /// <summary> /// UnloadContent will be called once per game and is the place to unload /// game-specific content. /// </summary> protected override void UnloadContent() { // TODO: Unload any non ContentManager content here } /// <summary> /// Calculates the size of all the text in the textbox. /// </summary> /// <returns>A Vector2 containing the width and height of the text.</returns> private Vector2 TextSize() { float Width = 0.0f, Height = 0.0f; foreach (string Str in TextWithLBreaks.Split("\n".ToCharArray())) { Vector2 Size = m_Font.MeasureString(Str); Width = Size.X; Height += Size.Y; } return new Vector2(Width, Height); } /// <summary> /// Update the hitboxes for the characters in the textbox. /// The hitboxes are used to detect collision(s) with the mouse cursor. /// </summary> private void UpdateHitboxes() { if (m_UpdateCharPositions) { int Height = 0; m_HitBoxes.Clear(); //Make sure it doesn't go out of bounds... if (m_Text.Count >= 1) { for (int i = 0; i < m_CharacterPositions.Count; i++) { //Make sure it doesn't go out of bounds... Height = (int)m_Font.MeasureString(m_Text[i < m_Text.Count ? i : m_Text.Count - 1]).Y; //Create a hitbox for each character if the character isn't the last one. if (i != m_CharacterPositions.Count - 1) { Rectangle Hitbox = new Rectangle((int)m_CharacterPositions[i].X, (int)m_CharacterPositions[i].Y, (int)(m_CharacterPositions[i + 1].X - m_CharacterPositions[i].X), Height); m_HitBoxes.Add(Hitbox); } } } m_UpdateCharPositions = false; } } /// <summary> /// Updates the positions of the characters. /// Called when a character is added or deleted from the textbox. /// </summary> private void UpdateCharacterPositions() { Vector2 Position = m_TextEditPosition; float XPosition = 0, YPosition = 0; if (m_UpdateCharPositions) { m_CharacterPositions.Clear(); int CharIndex = 0; foreach (string Str in TextWithLBreaks.Split("\n".ToCharArray())) { XPosition = 0; for (int i = 0; i < Str.Length; i++) { float CharWidth = m_Font.MeasureString(Str.Substring(i, 1)).X; XPosition += CharWidth; m_CharacterPositions.Add(CharIndex, new Vector2(XPosition + m_TextEditPosition.X, Position.Y + m_TextEditPosition.Y)); CharIndex++; } YPosition += CapitalCharacterHeight; Position.Y = YPosition; } ///This shouldn't be set here, because it is set in UpdateHitboxes(); //m_UpdateCharPositions = false; } } /// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); m_Input.Update(); UpdateCharacterPositions(); UpdateHitboxes(); foreach (Rectangle Hitbox in m_HitBoxes) { if (Hitbox.Contains(new Vector2(m_Input.MousePosition.X, m_Input.MousePosition.Y)) && m_Input.IsNewPress(MouseButtons.LeftButton)) { m_Cursor.Position = new Vector2(Hitbox.X, Hitbox.Y); int CharIndex = m_CharacterPositions.FirstOrDefault(x => x.Value == m_Cursor.Position).Key; if (CharIndex != -1) m_Cursor.CharacterIndex = CharIndex; } } foreach (Keys Key in (Keys[])Enum.GetValues(typeof(Keys))) { if (m_Input.IsNewPress(Key)) { m_DownSince = DateTime.Now; m_RepChar = Key; } else if (m_Input.IsOldPress(Key)) { if (m_RepChar == Key) m_RepChar = null; } if (m_RepChar != null && m_RepChar == Key && m_Input.CurrentKeyboardState.IsKeyDown(Key)) { DateTime Now = DateTime.Now; TimeSpan DownFor = Now.Subtract(m_DownSince); if (DownFor.CompareTo(TimeSpan.FromMilliseconds(m_TimeUntilRepInMillis)) > 0) { // Should repeat since the wait time is over now. TimeSpan repeatSince = Now.Subtract(m_LastRep); if (repeatSince.CompareTo(TimeSpan.FromMilliseconds(1000f / m_RepsPerSec)) > 0) // Time for another key-stroke. m_LastRep = Now; } } } Keys[] PressedKeys = m_Input.CurrentKeyboardState.GetPressedKeys(); //Are these keys being held down since the last update? if (m_RepChar == Keys.Back && m_LastRep == DateTime.Now) RemoveText(); if (m_RepChar == Keys.Up && m_LastRep == DateTime.Now) { if(m_MultiLine) MoveCursorUp(); } if (m_RepChar == Keys.Down && m_LastRep == DateTime.Now) { if(m_MultiLine) MoveCursorDown(); } foreach (Keys K in PressedKeys) { if (m_Input.IsNewPress(K)) { switch(K) { case Keys.Up: if (m_RepChar != Keys.Up || m_LastRep != DateTime.Now) { if(m_MultiLine) MoveCursorUp(); } break; case Keys.Down: if (m_RepChar != Keys.Down || m_LastRep != DateTime.Now) { if (m_MultiLine) MoveCursorDown(); } break; case Keys.Left: if (!m_MultiLine) MoveCursorLeft(); break; case Keys.Right: if (!m_MultiLine) MoveCursorRight(); break; case Keys.Back: if (m_RepChar != Keys.Back || m_LastRep != DateTime.Now) RemoveText(); break; case Keys.LeftShift: m_CapitalLetters = true; break; case Keys.RightShift: m_CapitalLetters = true; break; case Keys.Enter: AddNewline(); break; } } } base.Update(gameTime); } /// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.GraphicsDevice.ScissorRectangle = new Rectangle((int)m_TextEditPosition.X, (int)m_TextEditPosition.Y, (int)m_TextEditSize.X, (int)m_TextEditSize.Y); Vector2 Position = m_TextPosition; spriteBatch.Begin(SpriteSortMode.BackToFront); if(m_Cursor.Visible) spriteBatch.DrawString(m_Font, m_Cursor.Symbol, m_Cursor.Position, Color.White); // TODO: Add your drawing code here foreach (string Str in TextWithLBreaks.Split("\n".ToCharArray())) { spriteBatch.DrawString(m_Font, Str, Position, Color.White); Position.Y += CapitalCharacterHeight; } spriteBatch.End(); base.Draw(gameTime); } } } UpdateCharacterPositions() and UpdateHitboxes() seems to work perfectly. That is, UNTIL the text has been scrolled up: /// <summary> /// Adds a newline to m_Text, and updates the cursor. /// </summary> private void AddNewline() { m_Text.Add("\n"); m_Cursor.CharacterIndex++; m_Cursor.Position.X = m_TextEditPosition.X; m_Cursor.LineIndex++; //Scroll the text up if it's gone beyond the borders of the control. if ((m_TextEditPosition.Y - TextSize().Y) < (m_TextEditPosition.Y - m_TextEditSize.Y)) { m_TextPosition.Y -= CapitalCharacterHeight; m_CanMoveCursorDown = false; m_UpdateCharPositions = true; } if (m_CanMoveCursorDown) m_Cursor.Position.Y += CapitalCharacterHeight; m_NumLinesInText++; } I'm guessing that I need to take m_TextPosition.Y into consideration here: foreach (Rectangle Hitbox in m_HitBoxes) { if (Hitbox.Contains(new Vector2(m_Input.MousePosition.X, m_Input.MousePosition.Y)) && m_Input.IsNewPress(MouseButtons.LeftButton)) { m_Cursor.Position = new Vector2(Hitbox.X, Hitbox.Y); int CharIndex = m_CharacterPositions.FirstOrDefault(x => x.Value == m_Cursor.Position).Key; if (CharIndex != -1) m_Cursor.CharacterIndex = CharIndex; } } But I'm not entirely sure what to do. I tried both multiplying and adding m_TextPosition.Y to m_Input.MousePosition.Y and Hitbox.Y, but none of them seemed to work. Please help!
  10. Val Valentino

    Browser Game Fishes

    I've developed a browser game that I do not intend to sell and I'm looking for an investor to help me with advertising and upgrading. Languages: PHP7, HTML, JS, Jquery Database: MySQL FrameWork: Laravel Anyone who wants more information, write on PM
  11. This update is huge. Lots added which is why it took over 2 weeks. It’s very epic and I’m extremely proud of myself with this update. I hope you all find it fun!!! Here are the changes Change log Version 1.6 Game Mode Update: 2 New Ways To Play the Game! 2 Brand New Game Modes!! Completely change the way you play the game. Offers much more replay-ability and different ways to enjoy the game. All Game Modes can be permanently unlocked for 100 coins in the Store (Pharmacy). “Roll and Throw” Game-mode Play the original game but using Chemo Balloons as your main weapon. Instead of the Baseball Bat you will have Water Balloons filled with Chemo Medicine. Offers a completely different play style as you can attack from a distance with this “throwing” mechanic. All new animations for character and chemo balloon along with new sounds! Germs and Boss’s have adjusted health in this mode, this is for difficulty balancing. Everything is exactly the same except for the way you attack. “Coin Rush” Game-mode: In this mode you can not attack. The only power up you can use is the “Beanie” the ability to roll. Sarah is in a rush so you are now running and roll faster. There will be no enemies in this mode. There will be a 60 Second time at the start of the game. You will move room to room, all chosen randomly, trying to collect as many coins as you can before the timer reaches 0. Sound Easy? Well it won’t be as you will have to dodge all the room hazards in each room. Spikes, Mucus, Crates, Fireballs, and holes in the floor are all there to stop you. Also the coins disappear if you do not pick them up quick enough. All Coins will be placed randomly and have random timers on them when they disappear. They will give a blinking animation to alert they are going to disappear. Find Timer Pickups that will add seconds to your timer! Can you Top the leaderboards for this game mode? That’s right an all new leaderboard!! Brand New Music Track for this game mode. Music by Luis! You can now play Endless Mode with either weapon!! When you select Endless Mode it will ask you if you want to use the Bat or Chemo Balloon!! New Save Game Reminder Pop Up feature. If you click on Story Mode or Roll and Throw mode and an auto save is found it will alert you to either start new game or load your save game. Starting new game will overwrite the auto save data. New Section In SOSopedia for explanation and description on the New Game Modes! Credits screen updated and Added More Stats to the stats page Text in Store (pharmacy) updated for unlocking all Game Modes. New select cursor when using a controller. It is now animated and in color! Also updated for all added buttons and screens. Made the Coin, full heart, and half a heart pickups slightly larger. Made large hole look more like a hole and allows you to see the edge clearly. Now watch out and don’t fall in! Dryers no longer have a delay before they start shooting fireballs when you enter a room. They will start firing now right away. Fixed a crucial bug that could have prevented the defeat of chapter 2 boss, Chronic. Fixed another crucial bug that could possibly cause the screen to stay white after beating Chronic in Endless mode. Bug Fixes and Optimizations Done! View the full article
  12. I have programmed an implementation of the Separating Axis Theorem to handle collisions between 2D convex polygons. It is written in Processing and can be viewed on Github here. There are a couple of issues with it that I would like some help in resolving. In the construction of Polygon objects, you specify the width and height of the polygon and the initial rotation offset by which the vertices will be placed around the polygon. If the rotation offset is 0, the first vertex is placed directly to the right of the object. If higher or lower, the first vertex is placed clockwise or counter-clockwise, respectively, around the circumference of the object by the rotation amount. The rest of the vertices follow by a consistent offset of TWO_PI / number of vertices. While this places the vertices at the correct angle around the polygon, the problem is that if the rotation is anything other than 0, the width and height of the polygon are no longer the values specified. They are reduced because the vertices are placed around the polygon using the sin and cos functions, which often return values other than 1 or -1. Of course, when the half width and half height are multiplied by a sin or cos value other than 1 or -1, they are reduced. This is my issue. How can I place an arbitrary number of vertices at an arbitrary rotation around the polygon, while maintaining both the intended shape specified by the number of vertices (triangle, hexagon, octagon), and the intended width and height of the polygon as specified by the parameter values in the constructor? The Polygon code: class Polygon { PVector position; PShape shape; int w, h, halfW, halfH; color c; ArrayList<PVector> vertexOffsets; Polygon(PVector position, int numVertices, int w, int h, float rotation) { this.position = position; this.w = w; this.h = h; this.halfW = w / 2; this.halfH = h / 2; this.c = color(255); vertexOffsets = new ArrayList<PVector>(); if(numVertices < 3) numVertices = 3; shape = createShape(); shape.beginShape(); shape.fill(255); shape.stroke(255); for(int i = 0; i < numVertices; ++i) { PVector vertex = new PVector(position.x + cos(rotation) * halfW, position.y + sin(rotation) * halfH); shape.vertex(vertex.x, vertex.y); rotation += TWO_PI / numVertices; PVector vertexOffset = vertex.sub(position); vertexOffsets.add(vertexOffset); } shape.endShape(CLOSE); } void move(float x, float y) { position.set(x, y); for(int i = 0; i < shape.getVertexCount(); ++i) { PVector vertexOffset = vertexOffsets.get(i); shape.setVertex(i, position.x + vertexOffset.x, position.y + vertexOffset.y); } } void rotate(float angle) { for(int i = 0; i < shape.getVertexCount(); ++i) { PVector vertexOffset = vertexOffsets.get(i); vertexOffset.rotate(angle); shape.setVertex(i, position.x + vertexOffset.x, position.y + vertexOffset.y); } } void setColour(color c) { this.c = c; } void render() { shape.setFill(c); shape(shape); } } My other issue is that when two polygons with three vertices each collide, they are not always moved out of collision smoothly by the Minimum Translation Vector returned by the SAT algorithm. The polygon moved out of collision by the MTV does not rest against the other polygon as it should, it instead jumps back a small distance. I find this very strange as I have been unable to replicate this behaviour when resolving collisions between polygons of other vertex quantities and I cannot find the flaw in the implementation, though it must be there. What could be causing this incorrect collision resolution, which from my testing appears to only occur between polygons of three vertices? Any help you can provide on these issues would be greatly appreciated. Thank you.
  13. Hello Folks, We finally completed our first game - and need feedback on the mechanic, gameplay and design. Game : Fungry Birds is a fun, endless casual game about defeating..err.. eating your enemies. 4 hungry birds are inside a hacked drone in the space. With their beaks out. You steer it in a gravity less space - looking for aliens and gulping them! The hacked drone rotates continuously and you have not control whatsoever!There is one catch though - Birds can eat only the same colored enemy! Here is the complete story of our development. It contains all the twists and turns of our development cycle, hope you guys like it! You can watch the trailer here If you want to try the game on Android, its on Play Store! Some Screenshots attached below.
  14. 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.
  15. LukasIrzl

    Tales of Vastor - Progress #9

    Tales of Vastor - Progress #9 Content What's done? What's next? Music What's done? Black knight model Another enemy was added to the game - the black knight, one of the late game enemies. Waypoint icons The waypoint icons will help you identify what is waiting on a certain waypoint. Currently, the following ones are designed and configured: The boss icon will be displayed on waypoints, where a boss will occur. So, you might want to buy a few items before getting into the fight. The merchant is located near Udins castle. There, you should stock up a few potions or even buy a new weapon. Last but no least, the temple icon. It displays a temple, where you can save the game and heal all your characters. Status icons Up until now, there was no way to know, which status effects applied to a certain character. Later, the following icons will be displayed, depending on the active statuses. A short explanation to the effects: freeze: Does not allow action choosing for a certain amount or turns. The only good thing about the freeze effect is, that it nullifies the fire effect. fire: Damages the affected character at the start of each turn. If you can not remove the status fast enough, the character might end up dying. If the character is frozen, the fire effect will remove the freeze status. defense up: Raises the defense of the affected character. This status effect is essential to survive certain bosses or even harder fights. lower defense: Will decrease the affected characters defense. You should be careful, if a character has this status applied, because the damage received will increase. New background Here is one of the refactored backgrounds used for fights: This one provides more fog in the background, which shows the depth of the landscape. Lately, I love to put in a little bit of fog to the backgrounds, since it provides so much more life. What's next? This week, I want to focus on the character animations for the playable characters. Up until now, the base animations are already available for every character. Power attack animations, on the other hand, are still missing. They should be complete, as soon as the beta version is released. Alongside with the new animations, a few particle effects have to the created, such as lightnings, status changes and many others. Music I am glad to tell, that the main theme is already composed and others will come soon. Here is the main theme by Andrew LiVecchi: If you missed to check him out on YouTube, be sure to click the link: Youtube.com If you have feedback, you can contact me via mail or direct message whenever you want. Be sure to take a look at Twitter as well, since there will be more frequent updates. Thank you!
  16. Can anyone explain how to procedurally generate lake floor(sand) texture like on screenshot below?
  17. KATbIKST

    Rust Tank

    Hi people! We have released the third game for Android. Title: Rust Tank Developer: KATbIK STUDIOS Genres: Action Engine: Unity Platform: Android FREE Good old epic tank battles in retro style! Rust Tank is a dynamic action game about the world of tank battles in pixel graphics. Classic tanks made in retro style. Fight and win! Destroy the hordes of hostile tanks and their bases. Upgrade your combat vehicles to defeat the most powerful enemies. Complete missions and unlock all levels. In the game there are various skills and bonuses scattered throughout the levels. GooglePlay: https://play.google.com/store/apps/details?id=com.katbikstudios.rusttank Twitter: https://twitter.com/KATbIKST https://www.youtube.com/watch?v=nn59qqh9hKw&t=0s&index=7&list=PLJlhYvntoNJG75yZyUSM5Kxfn4ulZqvHT
  18. Hi all, I'm adrift on this one + going round in circles after 2 months! I'm looking to develop an app that presents multi-media layouts to end consumers. The app will allow editing of these final layouts, so must be able use techniques to draw grids and boxes around elements. In short, it needs to be able to draw: Images Text Video Simple geometry (rectangles, lines etc) Preferably, would also like: Image and text effects such as drop-shadow, blur and outline PDF display GIF display My preferable language is vb.net, but I could always move to c# if absolutely necessary (gotta make that painful journey one day!) I've tried all-sorts: ShardDX, SlimDX, monogame, gorgon, skiasharpe, DeltaEngine, SFML, Veldrid All fall short or get too low-level too quickly! The closest I've gotten is via SharpDX, but I must admit I'm lost with all the technicalities and I got stuck at applying effects to bitmaps (my code-monkery led to my populating the backbuffer via RenderTarget, but image effects appear to leverage RenderContext, which I have no idea how to integrate into my RenderTarget approach (see HERE). Of course, the irony is I can achieve all of the above via GDI+ and winforms, But naturally, this is incredibly slow. It does feel like I'm getting the closest by using low-level directx approaches, but the main problem is, I just can't get my head around the concepts (fine individually, but get stuck at how they all bind together!) so, 2 requests: Any ideas or guidance? (libraries that I may have missed; answers to the points I'm getting stuck at; directx guidance) I have the feeling that once some core code is written around the above, the rest should be straightforward. Does anyone know of anyone providing coding services around SharpDX? Thanks all,
  19. phil67rpg

    plane game

    well I have drawn two plane sprites and have them move around the screen using keys. one them can also shoot bullets, I have drawn an animated collision sprite
  20. Looking For: 2D Artist & Unity ProgrammerMy Experience: I have 3 years in Game Design although I’m still not that good at formatting, Slight bit of experience with 2D Art (Still learning) and a writer and manager.Project Description: Touch Heroes is a idle tap mobile game, the game take inspiration from 3 games called “Tap Titans 2”, “Almost A Hero” And a game called “Full Of Stars”, I highly suggest you check out the gameplay of these games if you are interested.The game is a Idle tap and RPG Hybrid, in the game you will have “Side Missions” where the player will have to do a task to get more gold, once they have gold they can then upgrade their tapping skills and upgrade their heroes, the heroes will help you on your adventure, as you move throughout this medieval world you will fight all manner of creatures. There are 2 modes, Endless, and Story, endless is a see how far you can go mode, how many upgrades you can get before your main hero gets killed, and Story, The Story mode tells a story, you have dialogue choices, characters, but more importantly, a world hub, in the world hub you will have “Destinations” these destinations are required places you must go, although there are alternative routes you can take to encounter different beasts, Character Encounters And Environments. When you die in story mode you will be taken to what I call the “Consequence System” where you will have to give up recourses or gold for others, or to get yourself out of trouble.As for endless mode, you will just die and have to restart.Length Of project: 3 To 6 months if consistent.If interested contact me at rioishere14@gmail.com
  21. I am working on a multiplayer real-time strategy game. This game focuses on the core of real-time strategy, forgoing resource gathering, base building, and unit types. Play against bots or meet other people online to play a match. You can play it in your web browser on https://play.drtsgame.com Note that the camera controls are not yet explained in the tutorial. Here is how to control the camera: Camera panning: Hold down right mouse button and drag to move the camera Camera Zoom: Use the mouse wheel to zoom.
  22. For reference I am use Unity as my game engine and the A* Pathfinding Project for path finding as there is no chance I would be able to create anything close to as performant as that in any reasonable amount of time. So I am looking to build a game that is going to have a very similar style as Prison Architect / Rim World / SimAirport / etc. One of the things that I assume is going to effect performance is path finding. Decisions about the game I have already made that I think relate to this are: 1. While I am going to be using Colliders, all of them will be trigger colliders so everything can pass through each other and I will not be use physics for anything else as it has no relevance for my game 2. I am going to want to have a soft cap at the map size being 300x300 (90,000 tiles), I might allow bigger sizes but do something like Rim World does in warning the player about possible side effect (whether it be performance or gameplay) 3. The map will be somewhat dynamic in that the user will be able to build / gather stuff from the map but outside of that, it should not change very much Now I am going to build my game around the idea that users would be in control of no more than 50 pawns at any given time (which is something I can probably enforce through the game play) but I am also going to want to have number other pawns that are AI controlled on the map (NPCs, animals, etc.) that would also need path finding enabled. Now I did a basic test in which I have X number of pawns pick a random location in the 300 x 300 map. move towards it, and then change the location every 3-5 seconds. My initial test was pretty slow (not surprising as I was calculating the path every frame for each pawn) so I decided to cache the calculated path results and only update it ever 2 seconds which got me: 100 pawns: 250 - 450 FPS 150 pawns: 160 - 300 FPS 200 pawns: 90 - 150 FPS 250 pawns: 50 - 100 FPS There is very little extra happening in the game outside of rendering the tilemap. I would imagine the most pawns on the map at a given time that need path finding might be a 1000 (and I would probably be able to make due with like 500 - 600). Now obviously I would not need all the pawn to be calculation paths every 2 seconds nor would they need to be calculating paths that are so long but even at a 5 second path refresh rate and paths that are up to 10 tiles long, I am still only able to get to about 400 pawns before I start to see some big performance issues. The issue with reducing the refresh rate is that there are going to be cases where maybe a wall is built before the pawns path is refreshed having them walk through the wall but not sure if there is a clean way to update the path only when needed. I am sure when I don't run the game in the Unity editor I will see increase performance but I am just trying to figure out what things I could be doing to make sure path finding is as smaller of a performance hit as possible as there is a lot of other simulation stuff I am going to want to run on top of the path finding.
  23. Hello. For a year I was creating video games for myself. Now I launched my first commercial project on google play. It's nice looking ,addictive and very relaxing bullethell. Just check this out: https://play.google.com/store/apps/details?id=org.godotengine.androidprojectbh Jellyhell just need some attention. Any feedback is welcome :)
  24. Welcome everybody to play my game for testings and for fun. It is like old game Soldat your parents played but faster and with more trick moves. Work is in progress. Focus now is 100 percent on good multiplayer code and nice gameplay. FEATURES + Bots and/or Online Multiplayer + Ask friend if nobody plays (it is first time release today!) + Account must be created - thanks good people from www.PlayFab.com + Only 2 maps without textures and 3 weapons but there will be more!! + for desktop Windows/Linux/Mac FEEDBACK Happy very much for feedbacks ))) 1. Does it work? I hope it works 100 percent ))) 2. Are intuitive controls? 3. How does game feel? 4. Do you want to play more? Maps are WIP. Final look will be 3 Dimensions, like this, using video card with hardware accelerator. KONTROLS movement keyboards [A/D] left/right [W/Space] Jump aim with mouse device [LMB] Fire [RMB] Jetpack boots [F1] stats! [Tab] scoreboard DOWNLOADS ON MY WEBSITE (for desktop Windows/Linux/Mac) Follows my twitter for update and conversations https://twitter.com/captain_danko
  25. Introducing Jumpaï! A game made using LibGDX. It's been 21 months the game is in development and we just released version 0.3! It's an online game, there's a server running at http://jumpai.net/ and everyone can join! Registering is easy, username password and you are good.The point of the game is to make your own level! There's an easy to use, integrated editor allow you to make your levels and they same automatically on the cloud. You can then join them online to play with your friends. A lot of cool mechanics, portals, powerups, items... Check it out! Trailer: Also, you can join us on discord https://discord.gg/R4ZafEw Screenshots:
  • 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!