Jump to content
  • Advertisement

Search the Community

Showing results for tags 'C#'.

The search index is currently processing. Current results may not be complete.


More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • 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

Categories

  • Audio
  • Visual Arts
  • Programming
  • Writing

Categories

  • 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

Forums

  • 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

Calendars

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

Blogs

There are no results to display.

There are no results to display.

Product Groups

  • GDNet+
  • Advertisements
  • GameDev Gear

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Website


Role


Twitter


Github


Twitch


Steam

Found 304 results

  1. I've got a problem with a piece of code and I'm not sure if I just have the syntax wrong or if I am doing something fundamentally wrong. Here is the line of code: currentPosition = gridPositions[randomIndex].Id; basically what's happening here is currentPosition is an int, gridPositions is a list of a custom class called GridSquare. Each GridSquare object contains a Vector3, a bool, and an int. the Int is Id. I'm trying to assign the Id int to the int currentPosition. What I'm getting instead is the index of gridPositions that we are currently on. Any ideas on why that would be, and if so how I can assign Id to currentPosition?
  2. I am currently making a RPG game for my oop class project using visual studio windows form c#, i have a class for the stage containing picture(stage image), sound(bg sound), status(clear/or not clear), name(stage name) i want to generate the stage like this, should i create it using a method and generate it at the class constructor or is there a better way to achive what i want? the one i want to generate is the blue dot and the yellow square, i created the other manually in the form
  3. I am trying to make a RPG game for my college oop class project using windows form, i am having trouble in moving the character,when i click the go button i want my player(black picbox) to move to the first big gray picbox and so on but before the player reach the big one i want the player to move to the small one first then stop at the big one, i am using timer to achieve that but i m having trouble, this is the code that i write in the timer_tick event (Moderator edit: attempted to format code -- Kylotan) for(int i = 0; i < stoneL.Count; i++) { x++; for(int j = 0; j < stoneS.Count; j++) { if (x % 2 != 0) { pictureBoxPlayer.Location = new Point(pictureBoxPlayer.Location.X, stoneS[j].Location.Y); } else { pictureBoxPlayer.Location = new Point(pictureBoxPlayer.Location.X, stoneL.Location.Y); timer1.Enabled = false; } if(j == x) { break; } } break; } i am having trouble in the outer loop, its says that the i++ code is unreachable i try to find out why but i am still stuck in this part, can someone please help solve this problem or any advice how to achieve what i want with a better code?i appreciate any kind of help, sorry if my explanation is kindda messy
  4. I've been thinking a lot about how I want to approach the design for interactive objects in my 2D Platformer. I wanted to do something lightweight and centralised so I started work on an Event Class that embodied anything that would be interacted with. The type of interaction would be defined in the Unity Editor though a Custom GUI that I am working on. As you can see, this "event" would be for a moving platform. If "Is Triggered" is ticked, the Platform moves only when the player jumps onto it and activates it. Otherwise it will interpolate between the definable "Start Position" and "End Position". Depending on which "Event" (enum) is selected, the Editor properties will change and so will the behaviour of the Game Object with the event attached to it. For example, selecting "Item Collect" would mean that the Game Object is no longer a platform - no longer an object that moves when activated - it would be a stationary sprite that, when activated, would disappear and add itself into the player Inventory. Here's some code to show where I'm at with it: /* * ############################# * ##@@## INITIALIZATION ##@@## * ############################# * */ private void Awake() { SetupEvent(eventType); } public void Activate(bool calledFromTrigger = false) { if (autoTrigger && !calledFromTrigger) return; Debug.Log("Activated " + name + "!"); StartEvent(eventType); } private void StartEvent(EventType type) { switch (type) { case EventType.Movement: MovePlatform(); break; case EventType.Dialogue: break; case EventType.NPC: break; case EventType.ItemCollect: break; case EventType.Cutscene: break; case EventType.Switch: break; case EventType.Custom: break; } Don't be deceived by the snippet - this is all quite functional as of right now, but I can't help but feel I am making a mistake. I keep having this gut wrenching feeling pulling me to scrap it and rewrite the "Event" class to be a base class of "Interactible" and for each type, or what is currently an enum, to be a child of Interactible. Essentially, I am not sure whether to base my events off of one Event class, with functionality dependent on the selected "Event Type" enum... Or have the "Event Types" span multiple classes inheriting from a base "Interactible" class. I like to be able to just drag and drop, select what I want all in one place - but I feel that this is entirely impractical due to its low level of abstraction and code being all in one spot. Can I get some opinions? I am a relatively beginner programmer but I know code decent enough to be able to use more advanced techniques I think. Here is a screenshot of my game for context.
  5. I've got an error on this line of code: currentPosition = gridPositions[randomPosition].Id; The error says "The bets overloaded method math for 'System.Collections.Generic.List<GridSquare>.this[int]' has some invalid arguments" I'm not entirely sure what this means, but to explain what I'm doing here, I've got currentPosition which is an int, and gridPositions is a list of GridSquares (a custom class that contains a Vector3, a bool, and an int). Id is the int property on GridSquares. I'm trying to assign the Id to currentPosition but I'm getting this error. I thought that this should work so I'm not sure what I'm missing here. Literally as soon as I post this I find what I did wrong. lol. I had randomPosition in there, not randomIndex. randomPosition is a Vector3. Oops!
  6. Dennis de Bruijn

    Handling collision

    Hi , I've been working on some on a game server in Unity. And I was wondering how I should handling collision detection. I'm using TCP at the moment. I thought I'd write a custom tool , that would find all objects in the game scene. And push that to a file. And let the Server read it out. So it know's where are collision objects are. Not sure if this is the best approach. I also wonderd how to handle character movement correctly. My client sends each 100ms a update of he's position (if they moved). The server sends each 150ms to all clients all positions. But I want to check if there are players in he's area. But that would be again a lot of calculations for the server. https://gyazo.com/d233ca0b4673a00eb62331603281cdf9
  7. Hello all! Welcome to this week’s edition of the Untouched Earth development blog. I had a semi productive week, which is great considering I had family visiting and various other things that required my attention. One of the things I love about indie game development is the flexibility it provides in terms of production. However, that doesn’t mean producing a game is without short and long term goals. I recently set the goal that I will complete one level every two weeks until I’ve completed 12 total levels. It’s really helped keep me on track doing updates on a daily basis. Which brings me to my next point, this week’s updates! Updates this week include: Continued developing level three (about 75% complete) *Spotlight* Fixed a bug causing the player to jump endlessly when performing air combat *Spotlight* Obtained logos for the game *Spotlight* Added new coins to the game Play tested levels one and two and fixed errors with world rendering and enemy behavior Added NPC’s who help the hero on his journey Fixed a bug that prevented bullets from causing damage to enemies Fixed a bug that inhibited the hero’s ability to land on certain terrain *Spotlight* Created a falling bridge obstacle Updated input manager to allow keyboard input for basic actions _________________________________________________________________________________________ Spotlight 1: Fixed a bug causing the player to jump endlessly from air combat I had this terrible bug pop up out of nowhere that allowed the hero to jump in midair as many times as he wanted when I pressed one of the combat buttons. This bug obviously allowed the hero to be more of a superhero, and had to go. It only took about 30 minutes to figure out what was going on, and I believe I have the bug ironed out. It turns out I caused the error when I gave the hero the ability to transition to his jumping animation from any air combat animation. Once I removed this code, it worked just fine. _________________________________________________________________________________________ Spotlight 2: Obtained logos for the game I love these logos! They looks fantastic! Every time I see them I feel like there’s adventure on the way and danger to be dodged. They were created by Jacob Garren, and really bring the adventure to life. Thank you Jacob for making great logos! _________________________________________________________________________________________ Spotlight 3: Added new coins to the game The coins I was using in the game looked a little out of place. They were bright colors and looked like they belong in a children’s toy chest rather than an exciting and adventurous 2D jungle game! I decided to investigate other options, and came across a great set of coins in the unity asset store (thank you Rexard for making great assets). I didn’t alter the coins in any way except for changing the colors. They look fantastic! While the implementation was relatively straight forward (drag and drop the new sprite into the sprite renderer) I did, however, struggle with a clean switch from the old coins to the new ones. For some reason, many of the coins didn’t resize correctly and weren’t responding to a prefab alteration. I had to go back over all of the old coins and reset their size. It wasn’t one of the more glamorous parts of game development, but it was necessary. Luckily these new ones look so fantastic that I harbor no resentments. _________________________________________________________________________________________ Spotlight 4: Created a falling bridge obstacle The hero often goes over bridges as he moves from piece of terrain to the next. I thought it might be fun to have the floor unexpectedly fall out from underneath him (sick and twisted, I know). It turns out it is fun so long as the hero doesn't plummet to his death too often. It’s a relatively simple obstacle developed with the animator and a small script. _________________________________________________________________________________________ As always, thank you for reading. I would love to hear from you and would love to hear any comments or ideas you have. Feel free to leave a comment or email me at watermoongames@gmail.com. _________________________________________________________________________________________
  8. Hi everyone, My main goal is to eventually build an extremely simple (graphics-wise/game-physics wise) sports video game in 2D. I am a big fan of the "old-skool" Genesis sports video games. I know some Python and C# but would really like to begin learning C++ as well. Where I am now: - My original thought was to continue learning some more C# and C++ before diving into any engine. I am thinking Udemy to take additional courses. -Perhaps, a tennis or golf game since I do not have to do deal with team-based AI which I have heard is extremely tricky to replicate. -Not sure, if Unity or Unreal is suited for sports game development? If one is better than better for 2-D based games, but I definitely want to learn both C# and C++. -Is it a realistic goal, to build a simple sports game (basic graphics and physics-- think Genesis or even early 90s DOS)? This goal is just for myself, I am not looking to make money off of this game but just some self-satisfaction that I can build it. Lastly, I know enough programming to build ROM editing tools in C# but that is the extent of my programming, with the exception of some simple Python scripting. I would appreciate anyone's input and thanks for taking to time to read this and/or respond. Thanks, DK
  9. So, I created a grid using a list. No problem. However, when it comes to manipulating the grid the way I need it's become a bit of a hassle and i'm looking for opinions on the best way to handle this. Here are my requirements for my grid: 1. Layout a grid that is 20W X 30H, however the screen will only display 20W X 15H. 2. We will be spawning bricks, but I only want them to spawn off screen. I've figured out how to do that, but if I change the structure, it's important that I retain that ability. 3. The first brick will spawn anywhere in the offscreen section of the grid. After that, each brick will spawn so that it has at least one adjacent brick that it is touching. 4. When a brick spawns, I need to somehow remove that grid space from the list of available brick spaces so that it doesn't try to put 2 bricks in the same location. 3 and 4 are the ones I'm having trouble with. I started working with just a list and had bricks spawning off screen the way I wanted but they were simply scattered. The problem with the list is that when I spawn a brick, i simply remove that entry from the list. Well then I have nothing to check against to see if there are any adjacent bricks. Someone suggested using a 2D array because it would be more efficient than a list and easier to check if bricks were touching. I had another person suggest using 2 lists and 2 2-dimensional arrays to cover all bases, but this seems a bit heavy handed to me. I also had a friend suggest using hash tables, which I have not used before, but after reading about them they also seem like a viable answer. I'm just wondering if anyone has any ideas or suggestions on the best way to keep this as lightweight as possible while still getting the work done. Thanks!
  10. Turbo14

    CPU Raytracer

    I wanted to show my WIP CPU raytracer. I probably won't implement too many more features. I just want something that looks decent with a little GI and AO and a few dynamic lights and textures. The video is rendered at 160x90 and captured at 320x180. It runs around 20fps on one thread on an i3-6320. Not sure if that is slow or fast for what I have. I plan on making an attempt to add multi-threading. I can't use SIMD since this was made in Unity. At least I don't think there is support for it. I'm making it in Unity so making games is easier since I won't have to make a whole engine. https://www.youtube.com/watch?v=iL8z04nZ0J8 EDIT: I'm gonna post all future updates here. New video with improved frame-rate and overall better looking than the original. https://youtu.be/tXWXOWXnU50 Sorry about the image quality... YouTube took a dump on it. I had to forget the idea of using SIMD since using .Net 4.6 breaks the raycasting against complex mesh colliders. Still need to work on the aliasing. Color absorb values seem off. I think ambient occlusion is show better here, but dark box edges are back. I just gotta send transform values to my filter to brighten them. https://imgur.com/rajEQky Better AO example: https://imgur.com/gNPIjNM Unfortunately, I think the only way I'm gonna get this to run at higher resolutions with playable frame rates is by moving it to the GPU since I can't thread my trace code using Unity. EDIT: 4/13/2018 - I'm wondering if I can use Embree to make a library that I can call from within Unity. Should be faster than Unity's ray-cast. Anyway here's a new vid with some bouncing balls. I only do GI/AO every other pixel now so they have a little reduced effect... also increased contrast. I'm now blurring the whole render which makes it a little fuzzy. if I don't, there's flickering around object edges when moving around. Video is at 160x88. https://youtu.be/_OC3_BwELzk 4/15/2018 - Using a small amount of help from the GPU I was able to make it higher resolution, but from the crap youtube compression it still looks low rez so here are some screens too..This was rendered at 1080p and captured at half that. Trying to figure out a solution for shadows fading out at distances larger than a few meters. High Res AO Example-https://imgur.com/2nKISzW High Res GI Example-https://imgur.com/1oe4BFd
  11. Let me preface this by saying that I am not familiar with 3d modeling at all. In fact I know almost nothing about it. This is perhaps why I've decided to write my own 3D model format and my own 3D modeling software from scratch (I didn't want to deal with existing formats, which seemed quite complex for what I wanted to do) . Now my 3D modeling software is quite adequate for small things, but it's really slow to use and unfit for organic shapes. My 3D model format is very simple; -25,4.48,-25:251,252,250 -24,4.58,-25:250,253,250 -25,4.62,-24:250,252,251 -24,4.58,-25:250,253,250 -24,4.62,-24:250,253,251 -25,4.62,-24:250,252,251 -25,4.62,-24:250,252,251 -24,4.62,-24:250,253,251 ... It's broken in 2 part, the first 3 numbers (separated by ',') are floating point values representing the location of a vertex and the last 3 numbers represents the RGB value of the color of that vertex. Triangles are simply drawn by taking the first 3 vertex, then the next 3, etc till the whole list is drawn. Of course once loaded this data takes the form of a model class, which is a list of instances of a small vertex class. As you can imagine, this is probably the simplest way to store a model that contains "textures" (which I use loosely), but is good enough for my game. I've looked at several model format but mine seems quite unique at what it does. Is there anything like it out there? I would like to write a small converter to take models made with more competent 3D software and use them in my engine. Another option would be to write a plugin for an existing 3D modeling software, but I am unsure on how I would go about that since I have almost no experience with them. Could anyone point me in the right direction? At first it seemed like a reasonably simple thing to do but the more I investigate the question the more I think I'll just have to spend a few days fleshing out my own 3D modeling software.
  12. Electroner

    C# Career advice

    Hi, Im studying Videogame Design and Development (we use Unity) and my goal is to become a videogame programmer. Those are a very generalist studies so we doesnt deepen so much on advanced programming. I have previous (non engineer) programming certification, so I can build easily almost any prototype I design. But after a couple of years working with Unity I almost left completly aside things like OOP, MVC... So my first doubt is if I am in the wrong way. I know that I would be able to learn anything forgotten or new when I arrived at a new job. But will I even have this opportunity if there is nothing like that on my portfolio? (Because I think I have to show the code) If answer is that I need to deepen on those programming techniques, could you suggest any book or whatever that explains the need of those approaches on Unity and teach about them? On the other hand, do you think I can build my portfolio with prototypes? Just placeholders cubes and capsules... Because I really feel like Im loosing my time modelling or rigging for a programming portfolio. I mean, I cant reach the modelling level of a full-time modeller, so on my old trys, I think my demos even look worse (bad rig and things like that) than with just placeholders. Maybe employers doesnt even look at demos and only want finished and published games? Thats all, sorry about my bad english ^ Thanks.
  13. Hey everyone, ive used tools like Intel GPA in the past and I would like to continue doing that. But in my current work environment I cant find a tool that can analyze rendering without a swapchain and calling Present(). In addition to that, the program Im working on uses WPF for UI, which uses a D3D9Ex Device and some tools attach to that device instead. So, are there any tools that allow debugging D3D11 without depending on a swapchain? Thanks for any help!
  14. We're looking for a Unity (C#) Programmer for our 2D Project. We're looking for a new lead programmer to continue with an existing project. Project is an open-world RTS, and is very close to a prototyping (playable) phase. Our existing lead, unfortunately, has no more time for the project, and thus we are in search of a new one who is interested. Game is purely fantasy based, and we'll be able to give you much more detailed info about the project as we begin to work you into it. You'll be working with our junior dev, who has been here since the beginning. Primary skills needed are working within Unity. And skills with XML within Unity. Our list of major goals we'd need you to do is minimal, yet still fairly extensive: -Implement an already created pathfinding system (from the Unity Asset Store) to replace our existing pathfinding system. -Work with an existing random-node-web generator to act as our 'global map', interworking our random map generator to use the node creator as its respective 'world map' (this one is the most extensive, and we'll need to discuss it quite thoroughly before having you start with it- our junior dev is the one who created the node system, so he'll be able to assist you with the integration phase). -Work with an existing random-spawner to spawn desired objects across our map (desired objects change based on what map within the world this map is, so we'll need to discuss it more, but its not as extensive as interworking the random node generator). -Integrating our dual-map system that runs a static map (acting as player's home base, static, never changing) alongside the exploring map (which is dynamic, and changes quite often). This is relatively implemented already, but we'll need to mess with it further still. -Work with an existing XML database to implement it into the project. There's no integration yet, so it'll need to be from the ground up. But we have the database setup and ready to work with. -Content-implementation (after all else is done, this is to take care of anything that needs to be 'hard-coded', ie unique spell effects, etc- nothing too crazy) -Various performance enhancements (like setting up a simple easy-on-performance enabler/disabler to hide objects to save on performance... and other things we'll need to discuss- again, nothing too crazy). -Implementing a simple menu system, alongside an adequate saving system (saving system will be similar to Skyrim). But we'll also need to ensure saving a considerable amount of extra things- from Map Exploration, to World Exploration, to hotbar setups, to all the misc data like units, location, resources, and so forth. Let me know your rates per hour, and we'll see if we can work out a good deal between both of us. Royalties are implied. If you feel you'd be able to accomplish all of the above, then we'd definitely like to work with you. Obviously- we won't know how to implement everything until we get to the physical code. But just making sure you know of this ahead of time so you know exactly what you'd be getting into is much more beneficial for both of us. If interested, send an email to: eldwin11929@yahoo.com Thanks!
  15. COMPANY AND THE PROJECT We are an indie game studio consisted of professional and skilled artists who are dedicated indie enthusiasts. Our current project is INT, developed on Unity Engine 5 for platforms Windows, Linux, and Mac. We are recruiting a few more members on the team to finalize our playable demo. INT is a 3D Sci-fi RPG with a strong emphasis on story, role playing, and innovative RPG features such as randomized companions. The focus is on the journey through a war-torn world with fast-paced combat against hordes of enemies. The player must accomplish quests like a traditional RPG, complete objectives, and meet lively crew members who will aid in the player's survival. Throughout the game you can side and complete missions through criminal cartels, and the two major combatants, the UCE and ACP, of the Interstellar Civil War. Please note that all of our current positions are remote work. You will not be required to travel. For more information about us, follow the links listed below. INT Official website Steam Greenlight IndieDB page Also follow social media platforms for the latest news regarding our projects. Facebook Twitter UNITY ENGINE PROGRAMMER We are looking for Unity Programmers. You will be working with our Coding team Lead to implement systems and mechanics using C# language. Your duties will include: Attendance of regular team meetings. Timely completion of implementation of assets. Direct contact with Project Lead and other Department Leads for the implementation process. Utilization of version control suites. Utilization of our project management boards (Trello) and communication channels to obtain up-to-date assets. REQUIREMENTS To be successful in this position, following requirements apply: Clear communication and self starter - pushes to meet deadlines and contribute to the project. Ability to complete tasks with limited input/direction from management. Comfortable with working with people remotely and via Trello management system. Good internet connection with ability to update assets/builds quickly, with large dependencies. At least 15 hours of availability each week. Proficient experience using the Unity Game Engine. Proficient experience in implementing assets into the Unity Game Engine. REVENUE - SHARE This is a great opportunity to get into the game development industry. We have the majority of our art assets completed and are marching towards our crowd-funding campaign, currently planned for mid 2018. We are unable to offer wages or per-item payments at this time. However revenue-sharing from crowd-funding is offered to team members who contribute 15-20 hours per week to company projects, as well as maintain constant communication and adhere to deadlines. Your understanding is dearly appreciated. TO APPLY Please send your Cover Letter, CV, Portfolio (if applicable), and other relevant documents/information to this email: JohnHR@int-game.net Thank you for your time! Please feel free to contact me via the email provided should you have any questions. We look forward to hearing from you! John Shen HR Lead Starboard Games LLC
  16. I've got a brick breaker game that procedurally generates bricks in random locations. I have it narrowed down to the columns and rows that I want them to spawn in. However, I don't want a bunch of disjointed bricks everywhere. I want them to all be connected. I don't care too much about the general layout, as long as they are all touching when they spawn. How can I do this? Is there a way that I can make sure as each one spawns, it spawns touching one of the previously spawned ones? I have attached the code for the board manager for anyone who wants to see what I'm working with. Thanks! private int columns = 20; //Number of columns in our game board. private int rows = 30; //Number of rows in our game board. public int brickCount; //Number of bricks to spawn. //Define brick types to assign sprites to in editor public GameObject oneHitBrick; public GameObject twoHitBrick; public GameObject threeHitBrick; public GameObject explodingBarrel; //temporarily represented by the unbreakable brick private Transform boardHolder; //A variable to store a reference to the transform of our Board object. private List <Vector3> gridPositions = new List <Vector3> (); //A list of possible locations to place tiles. //Clears our list gridPositions and prepares it to generate a new board. void InitialiseList () { //Clear our list gridPositions. gridPositions.Clear (); //Loop through x axis (columns). for(int x = 1; x < columns-1; x++) { //Within each column, loop through y axis (rows). for(int y = 22; y < rows-1; y++) { //At each index add a new Vector3 to our list with the x and y coordinates of that position. gridPositions.Add (new Vector3(x, y, 0f)); } } } //RandomPosition returns a random position from our list gridPositions. Vector3 RandomPosition () { //Declare an integer randomIndex, set it's value to a random number between 0 and the count of items in our List gridPositions. int randomIndex = Random.Range (1, gridPositions.Count); //Declare a variable of type Vector3 called randomPosition, set it's value to the entry at randomIndex from our List gridPositions. Vector3 randomPosition = gridPositions [randomIndex]; //Remove the entry at randomIndex from the list so that it can't be re-used. gridPositions.RemoveAt (randomIndex); //Return the randomly selected Vector3 position. return randomPosition; } //LayoutObjectAtRandom accepts an array of game objects to choose from along with a minimum and maximum range for the number of objects to create. void LayoutObjectAtRandom (GameObject brick, int brickCount) { //Instantiate objects until the randomly chosen limit objectCount is reached for(int i = 0; i < brickCount; i++) { //Choose a position for randomPosition by getting a random position from our list of available Vector3s stored in gridPosition Vector3 randomPosition = RandomPosition(); //Instantiate tileChoice at the position returned by RandomPosition with no change in rotation Instantiate(brick, randomPosition, Quaternion.identity); } } //SetupScene initializes our level and calls the previous functions to lay out the game board public void SetupScene (int level) { //Creates the outer walls and floor. //BoardSetup (); //Reset our list of gridpositions. InitialiseList (); brickCount = (int)Mathf.Log(level, 2f); //set the number of bricks based on the current level //Instantiate a random number of wall tiles based on minimum and maximum, at randomized positions. LayoutObjectAtRandom (oneHitBrick, brickCount); //Instantiate a random number of food tiles based on minimum and maximum, at randomized positions. LayoutObjectAtRandom (twoHitBrick, brickCount); LayoutObjectAtRandom (threeHitBrick, brickCount); }
  17. public int columns = 20; //Number of columns in our game board. public int rows = 30; //Number of rows in our game board. public int brickCount; //Number of bricks to spawn. //Define brick types to assign sprites to in editor public GameObject oneHitBrick; public GameObject twoHitBrick; public GameObject threeHitBrick; public GameObject explodingBarrel; //temporarily represented by the unbreakable brick private Transform boardHolder; //A variable to store a reference to the transform of our Board object. private List <Vector3> gridPositions = new List <Vector3> (); //A list of possible locations to place tiles. //Clears our list gridPositions and prepares it to generate a new board. void InitialiseList () { //Clear our list gridPositions. gridPositions.Clear (); //Loop through x axis (columns). for(int x = 1; x < columns-1; x++) { //Within each column, loop through y axis (rows). for(int y = 22; y < rows-1; y++) { //At each index add a new Vector3 to our list with the x and y coordinates of that position. gridPositions.Add (new Vector3(x, y, 0f)); } } } //RandomPosition returns a random position from our list gridPositions. Vector3 RandomPosition () { //Declare an integer randomIndex, set it's value to a random number between 0 and the count of items in our List gridPositions. int randomIndex = Random.Range (0, gridPositions.Count); //Declare a variable of type Vector3 called randomPosition, set it's value to the entry at randomIndex from our List gridPositions. Vector3 randomPosition = gridPositions[randomIndex]; //Remove the entry at randomIndex from the list so that it can't be re-used. gridPositions.RemoveAt (randomIndex); //Return the randomly selected Vector3 position. return randomPosition; } //LayoutObjectAtRandom accepts an array of game objects to choose from along with a minimum and maximum range for the number of objects to create. void LayoutObjectAtRandom (GameObject brick, int brickCount) { //Instantiate objects until the randomly chosen limit objectCount is reached for(int i = 0; i < brickCount; i++) { //Choose a position for randomPosition by getting a random position from our list of available Vector3s stored in gridPosition Vector3 randomPosition = RandomPosition(); //Instantiate tileChoice at the position returned by RandomPosition with no change in rotation Instantiate(brick, randomPosition, Quaternion.identity); } } //SetupScene initializes our level and calls the previous functions to lay out the game board public void SetupScene (int level) { //Creates the outer walls and floor. //BoardSetup (); //Reset our list of gridpositions. InitialiseList (); brickCount = (int)Mathf.Log(level, 2f); //set the number of bricks based on the current level //Instantiate a random number of wall tiles based on minimum and maximum, at randomized positions. LayoutObjectAtRandom (oneHitBrick, brickCount); //Instantiate a random number of food tiles based on minimum and maximum, at randomized positions. LayoutObjectAtRandom (twoHitBrick, brickCount); LayoutObjectAtRandom (threeHitBrick, brickCount); } I am trying to create a variant of Arkanoid and Space Invaders. I want the bricks to spawn procedurally off screen in a random arrangement according to set requirements. Then they would start moving down screen line by line. I could ask a hundred questions about how to do this, but for now I just have one. How do I start them spawning off screen? Currently, my screen is 20W X 15H. My current algorithm to set up the grid positions is your typical nested for loops, iterating through x and y for columns and rows. I'm wondering if the best way to do this is to expand my rows to maybe 30, while keeping the columns the same so as to constrain them over top of the screen, but allowing them only to spawn between grid positions in the rows off screen. Then find a way to move them down screen one line at a time. Is this the best method for this? Thanks for the help. Edit: This is the code I currently have. I think I have what I was talking about set up correctly, however I'm getting an out of range exception. I believe it has to do with the randomIndex possibly being below the 15 height, but I'm not sure. And I'm not sure how to change it to fix it.
  18. I have a save/load function in my 3D engine which was working quite well in the past. I've just added terrains (which are very small, no more than 100 triangles big) but I can't get them trough my save/load pipeline. They're quite a bit larger than any single model I've had to deal with in the past. I have no problem loading the model in my engine, it takes less than a second, but I have a problem serializing it for my game save/load function which uses a different format than my model format. The whole terrain model file looks like this: -25,4.48,-25:251,252,250 -24,4.58,-25:250,253,250 -25,4.62,-24:250,252,251 -24,4.58,-25:250,253,250 -24,4.62,-24:250,253,251 -25,4.62,-24:250,252,251 -25,4.62,-24:250,252,251 -24,4.62,-24:250,253,251 ... but this is nearly irrelevant as my save function only serializes the string using : data += Serializebytes(Encoding.ASCII.GetBytes(entity.model.StringContent)); where Serializebytes() is : static string Serializebytes(byte[] bytes) { char byteSep = ' '; string byteString = ""; foreach (byte byten in bytes) { byteString += byten.ToString(); byteString += byteSep; } return (byteString); } The problem really is with my serialize bytes method, the program hangs there as it takes forever to process. This worked fine for the very small model that composed my previous scenes but does not for the terrain. The function is simply supposed to take the bytes given by Encoding.ASCII.GetByte() and put a space between them. I figure this is something that should be relatively fast, even with very large amount of data. The perfect solution would be a simple function that would replace Serializebytes(). Thanks in advance guys.
  19. Wow! Very productive week full of new opportunities, new items, and new bug fixes. I must say, development seems to be progressing wonderfully (fingers crossed I didn’t just jinx myself 😊). The game’s fun level continues to increase, and, to me, that’s the whole point of agonizing over the minute details of code and animation – to give others a fun experience. ***Original blog post can be found by clicking here*** Updates this week include: Continued developing level three (about 50% complete) Fixed the artificial intelligence and decision making on enemy characters *Spotlight* Created a “Spinning Wheel” obstacle *Spotlight* Created a “Springy Platform” obstacle *Spotlight* Created a “Smasher” obstacle *Spotlight* Created two new characters called “Howler 2” and “Piper” Started creating a new Booster – “Slow time” *Spotlight* Created and implemented a rendering algorithm to Frames Per Second. Fixed a bug causing enemy health decrementation to be inconsistent Fixed the code that caused the “Howler” enemy to freeze when landing Fixed an error causing bullets to instantly be destroyed and not collide with enemies _______________________________________________________________________________________________________________________________ Spotlight 1: Created a "Spinning Wheel" obstacle I’m in love with this obstacle! It’s incredibly fun and presents a tough challenge to the hero. I died multiple time when testing it, but the thrill of successfully maneuvering it was invigorating. Basically, the obstacle has six platforms the player can jump on. Each platform moves around a center point at a duration and intensity set by the code. The first challenge was getting the six platforms to rotate around the center in harmony. I tried to create a script to manage the movement, but it was a big failure (failure is okay though!). Ultimately I ended up attaching an animator component and just creating an animation in the unity editor. The wheel spins faster by simply increasing the animation speed – Simple...so I thought. The startDelay variable causes the animation to wait for a number of seconds before starting. The animation variable refers to the types of animation available - either an animation where the "Spinning Wheel" moves and pauses or an animation where the "Spinning Wheel" moves continuously. _______________________________________________________________________________________________________________________________ Here's where a big error came in. The hero was not staying put on the platforms. The platforms would rotate out from under him, and he would fall to his untimely death (brought a tear to my eye to see such potential wasted so unfairly). I ended up creating a script for each platform that determined whether or not the platform was touching the hero. If it was, the platform script adjusts the hero’s position to keep him on top of the platform. heroScript refers to the script attached to the hero. If the hero is colliding with the platform, the touchingHero variable is set to true. This variable then signals that a change in position each must be calculated (deltaPosX & deltaPosY) during the FixedUpdate(). This change in position is then added to the hero's transform to correct his position. _______________________________________________________________________________________________________________________________ It worked like a charm! The spinning wheel was complete, and I could set how fast it moved in the unity editor. I created two modes for it: pause and continuous. Pause mode (featured in the video below) puts a brief pause in between rotations, whereas continuous mode rotates without any breaks. _______________________________________________________________________________________________________________________________ Spotlight 2: Created a “Springy Platform” The springy platform was pretty simple to make, and only took about an hour or so of development time. I had never used the SpringJoint2D, so it took some trial and error to make the obstacle usable. I love how it turned out, though! The character can land on it and bounce, making it hard to keep his footing. It really presents a challenge to game play, but, just like the “Spinning Wheel”, feels great when you defeat it! Victory! _______________________________________________________________________________________________________________________________ Spotlight 3: Created a “Smasher” obstacle I had originally created a larger smasher obstacle that would plummet downward upon the hero and send shock waves of crushing force through his body! This obstacle is simply an adaptation of that obstacle, but gave me a few challenges. The obstacle is intended to be used when the hero is climbing down a rope or vine. However, if the hero falls from the rope or vine and lands on the “Smasher” he is unable to move and receives damage until he dies. I foresaw rage quitting if I didn’t fix this bug. I ended up updating the hero’s detection manager to include “Smashers” as elements the hero can move on. (see the detection manager section of the game mechanics section if you’re not familiar with the detection manager). _______________________________________________________________________________________________________________________________ Spotlight 4: Created two new characters called “Howler 2” and “Piper” Two new characters joined the world, and boy oh boy do they make my skin crawl. Creepy and scary with a hint of horror. One of the characters, who I uniquely named “Howler 2”, is an adaptation of the “Howler” Character – Thank you again HQ game assets for making great assets. I did some art work to make him spookier, and augmented his script to make him more lethal. He’s able to evade hero attacks, is bigger, stronger, and can leap further than the “Howler.” The other character is called “Piper.” He is a distance based character that fires bolts of energy at the hero and runs away when the hero gets close. He’s a real challenge, but a lot of fun to beat up. _______________________________________________________________________________________________________________________________ Spotlight 5: Created and implemented a rendering algorithm to increase game speed. This update was huge! HUGE! There was a very serious problem where the frames per second were absolutely horrible when playing the game on a solid gaming PC. I realized I simply had far too many game objects active at once. I did a little research into several topics including object pooling, and ultimately created an algorithm that sets certain sections of the map active and other sections of the map inactive. I created a “Render Trigger” game object, which is basically just a game object with a trigger component, and set them up across the entire world. You can find the entire code below. Super simple and super effective! The game looks stunning, fluid, and has crazy high FPS now. The sections that are active are loaded into the render array in the unity editor. The sections that are inactive are loaded into the sleep array. When the hero touches the trigger, the render game objects are set active and the sleep game objects are set inactive _______________________________________________________________________________________________________________________________ As always, thank you for reading. I would love to hear from you and would love to hear any comments or ideas you have. Feel free to leave a comment or email me at watermoongames@gmail.com. _______________________________________________________________________________________________________________________________ ***Original blog post can be found by clicking here*** ***Visit Untouched Earth website for more details***
  20. A lot of exciting updates this week! I spent a good amount of time updating the enemies and creating new challenges for the hero to deal with in the game world. I also fixed a few bugs that were causing some minor annoyances and affecting game play. ***This blog post is copied from a post on the game's website. The original post can be found here*** Update 1: Added a slider cable I added a new element to the game that allows the hero to grab hold of a "sliderCable" object in the form of a vine or rope and use it to slide down a longer vine. The mechanic threw a few curve balls at me, but overall didn't take more than about an hour to develop. It still has a few kinks to work out, but is functional and fun. The main challenge was getting the hero to stop abruptly when he reached the end of the vine. As you see from the video below, he was overshooting the vine and falling off the map. The mechanic is pretty simple. The long vine has a trigger collider at the end of it called a "stopPoint." When the stopPoint triggered by the hero, it activates all of the RigidBody2D constraints on the sliderCable to instantly stop the sliderCable and hero. Needless to say, it wasn't working that way. The sliderCable was using a SliderJoint2D, so I spent some time researching complications associated with the joint. It turns out the problem was with my code. When the hero initially grabs the sliderCable, the sliderCable code turns off the RigidBody2D constraints in order to allow the SliderJoint2D to take over. This is where the problem developed. The hero was being separated from the sliderCable as it was sliding and then touching it again when it stopped abruptly. By touching it again, the RigidBody2D constraints on the sliderCable were turned off by the code right after they were turned on by stopPoint code. After changing a few lines of code around, it worked great! It's a really fun game mechanic, just has a few more bugs to fix. _________________________________________________________________________________________ Update 2: Made enemies turn red when hit I wanted to make it more exciting and noticeable when the character strikes an enemy, so I decided to turn the enemy characters red when they get hit by the hero. I thought it would be as simple as adding a coroutine that turned the enemy red, waits a few seconds, and then turns him back to his original color. Turns out it wasn't that simple. Since the character uses bone based animation (meaning tons of little sprites make up the character), I had to load the enemy's original colors into an array in the Start() method and then copy them back at the end of the coroutine. Success! The "ren" variable is a reference to an array that holds each sprite's SpriteRenderer component. The "color' variable is a reference to an array that holds the original color of each sprite. I copied the original colors in the Start() method. _________________________________________________________________________________________ Update 3: Added new enemy characters I created two new enemy characters. They're fantastic! They are both based on the "explorer" enemy - Thank you HQ game assets for making great assets! - I had to do a little creative artwork to make them look unique, and I must say they look great. One of them is a tiny little guy that moves fast, jumps, and evades the hero's attacks. The other is a big, slow enemy that has a powerful attack and doesn't move when hit by the hero. Super exciting! _________________________________________________________________________________________ Update 4: Fixed wall jumping bug There was a very annoying little bug that allowed the hero to jump up any 90 degree wall he wanted to. The bug was definitely exploited by some of my testing team (wife). I wasn't quite sure how to fix it at first, and ultimately had to add some new code to the CanJump() method of the hero's Detection Manager. It turns out the character's detection points were determining that he was eligible to run and jump whenever he was colliding with a wall, regardless of whether he was colliding with the wall while suspended in midair or not. Needless to say this isn't the behavior I was going for. I ended up creating a few conditions that dictate when the hero is able to jump. Basically, he has to be touching a piece of world that has a "Movement tag" (tags for objects that the hero can run on), and, if the front detection point (fp_2) is active, then the front non static ray will check whether there is a wall in front of the hero. If there is a wall, the hero is not eligible to jump unless his fp_Main detection point is active. It works so far, but I'm wondering if another bug might pop up from this fix. I'm open to any suggestions on how to deal with this type of problem. This code is from the hero's detection manager. Make sure you read the Game Mechanics section of the web page to fully understand what I mean by detection points, detection manager, fp_2 and fp_Main as they are game specific scripts and gameObjects. _________________________________________________________________________________________ Update 5: Fixed standing on enemy bug I've been having an issue where the hero lands on top of an enemy, and is then able to stay standing on top of him. This glitch allows the hero to safely ride the enemy around the map, and makes it hard to get off of the enemy when standing on his head. It was definitely taking the fear out of the fight. I struggled with coming up with a good solution, but ultimately decided to make the hero bounce off enemies when he touches them. The solution was relatively simple, and involved the creation of game objects with BoxCollider2D components attached. These game objects create an outline of the enemy and each have a script attached called "BouncePoint." You can see the full script below. When the character hits one of these bounce points, he bounces off the enemy in a direction determined by the BouncePoint script. I was looking at using a physics2D material, but was having trouble getting it to work. Instead I just added a force to the hero when he collides with the collider. So far it works great! This is the entire BouncePoint script. heroScript and enemyScript reference the scripts attached to the hero and any enemy. The bounceValue is used to determine which direction the hero should bounce in. The direction is dependent upon the direction the enemy is facing. _________________________________________________________________________________________ Any thoughts on how to improve some of these mechanics are welcome! Any questions are also welcome! feel free to comment or contact me at watermoongames@gmail.com. ***This blog post is copied from a post on the game's website. The original post can be found here*** _________________________________________________________________________________________
  21. WaterMoon

    Welcome!

    Welcome to the development blog for the new game "Untouched Earth." I'm an indie developer in the process of creating my first ever large(ish) game, and am thrilled to track progress and development as I approach the projected winter 2018 release. I started making the game around six months ago as a way of learning the unity game engine, and have come a long way. There's still a lot of work to do, but I believe the final product will be well worth the effort. I hope you'll take the time to follow the game's development over the next several months, and your comments and insights are always welcome!
  22. Arnold // Golden Donkey Productions

    C# Where to get started in making a text based MUD?

    Where to get started in making a text based MUD? So I have been making small games for over 3 years now and I'm comfortable in the programming languages that follow: 1. Python (I need a bit of practice with this) 2. C# (I am the most comfortable in this) 3. Java (I know quite a bit but might need to do a tad of research) and I have also done a bit in: 4. JS (I know pretty much nothing here) 5. And some other stuff Anyway, so now you know all that rubbish here goes. What I wan't to do is program a text based MMORPG or a text based MUD. I have basically no clue where to begin so I what I need is some places to start. If anyone has any information on the subject, anything at all, please post it bellow. I will be really appreciated.
  23. Trying to modify the D3D11 example to draw a texture onto the triangle rather than the colours but all I'm not seeing the triangle. What am I missing? Code: https://pastebin.com/KVMTq9r6 MiniTri.fx https://pastebin.com/0w1myEg0
  24. WaterMoon

    Slow Motion Game Effect

    Hello all! I'm in the process of creating a 2d side scroller game using the unity game engine with the C# programming language. I'm creating "boosters" for the main character, one of which is the ability to slow down time. When time slows, everything moves slowler EXCEPT for the main character. Getting time to slow down is easy enough (Time.TimeScale = .5f), but I'm struggling with keeping the main character from slowing down as well. The main character moves using the physics engine by applying force: rigidbody2d.Addforce(new Vector2 (moveForce, 0), ForceMode2d.Force) I'm not sure if I need to scale the amount of force applied to the character, and, if so, what the coding would look like. Any thoughts and insight would be most appreciated!
  25. So I am trying to figure out an efficient way to block the rendering of tiles that are not in "line of sight" (behind other certain tiles), something like in CDDA: Now I know I could do something like this by raycasts (as I currently do that that enemies to determine if they are line of sight of the player) however I am going to want to display probably somewhere between 7000 - 9000 tiles at the max zoom level and the only way I would know how to use raycast for this would be raycasting each tile which I imagine at that scale would not be usable (though I have not tried). What would be an efficient way to try to accomplished what I am looking to do (also if it matters, this game in turn based)?
  • Advertisement
×

Important Information

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

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

Sign me up!