Jump to content
  • Advertisement

Search the Community

Showing results for tags 'C#'.



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 Dev Loadout
  • Game Dev Unchained

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

  • 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 369 results

  1. jb-dev

    A bomb

    From the album: Vaporwave Roguelite

    A bomb about to be blown. That dude is gonna have the time of his life 🙃
  2. Today I've worked on adding bombs to the game. They are really useful for dispersing enemies and such. The model was made a while back. It was just a mater of importing it in Unity and coding the script. Here's a nice video I've made just for that: There's nothing really special here, just polymorphism, Unity Components and C# delegates.... Collider[] cols = Physics.OverlapSphere(explosionCenter, m_explosionRadius, LayerMask.GetMask("Obstacles", "Entity", "Player Body", "Pickable"), QueryTriggerInteraction.Ignore); for (int i = 0, length = cols.Length; i < length; ++i) { GameObject collidedObject = cols[i].gameObject; HealthController healthController; Rigidbody rigidbody; AbstractExplosionActionable explosionActionable; if(collidedObject.layer == LayerMask.NameToLayer("Entity") || collidedObject.CompareTag("Player")){ healthController = collidedObject.GetComponent<HealthController>(); healthController.RawHurt(m_explosionDamage, transform); } else if(collidedObject.layer == LayerMask.NameToLayer("Pickable")) { rigidbody = collidedObject.GetComponent<Rigidbody>(); if (rigidbody != null && !rigidbody.isKinematic) { rigidbody.AddExplosionForce(m_explosionDamage, transform.position, m_explosionRadius); } } else if (collidedObject.layer == LayerMask.NameToLayer("Obstacles")) { explosionActionable = collidedObject.GetComponent<AbstractExplosionActionable>(); if (explosionActionable != null) { explosionActionable.action.Invoke(m_explosionDamage, m_explosionRadius, explosionCenter); } } }
  3. I've got a bunch of balls all spawning in a timed interval and I am setting the velocity of them when they spawn so that they will spawn and immediately start going in the direction I want. However, they don't do that. Instead they spawn in place and gravity makes them begin to fall straight down. if they hit something, then they take off like just like they should have spawned. I'm not sure why they have to hit something for this to happen. Any ideas? The code below is the ball spawning code. The mainballVector is set in a different section and I have verified it does have the correct values. Instantiate(newBall, new Vector3(paddle.transform.position.x, (paddle.transform.position.y + 1), 0), Quaternion.identity); newBall.GetComponent<Ball>().hasStarted = true; GameManager.pickUpManager.allBalls.Add(newBall.GetComponent<Ball>()); newBall.GetComponent<Rigidbody2D>().velocity = mainBallVector; //use the original ball's vector3 to follow it directly
  4. 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. 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
  5. My name is Gael and I'm a game designer and a writer. Designing, writing and making videogames are my passions, but at the moment, this is only a hobby. Nevertheless, I intend to turn it into a career. This is why I am currently looking for some people to join forces and make a team of game developers. Even though I'm not a 3D artist, I can help with some 3D models like little objects or the environment. But my main role is designing and writing the game. The intention is to create a JRPG similar to the Final Fantasy series, Lost Sphear, Children of Mana, etc. This game is already designed and the story is completed. Nevertheless, there is always room for improvement and your contributions will be more than welcome! POSITIONS: - CONCEPT ARTIST - This person will create and design characters, environments and other concepts used within the game. So, he or she will be responsible for generating a portfolio of images to clarify the artistic vision. Manga / Anime is the preferred style of the artist, but other styles are also welcome! - 3D ARTIST - This person will create 3D models like the game characters, monsters, objects, etc. - ANIMATOR - This person will animate the models created by the 3D artist, to create in game animations as well as cut scenes. - C# PROGRAMMER- This person has to have experience with Unity 3D and C#, as this is going to be the main engine to create the game. For the moment, this is going to be unpaid work for all of us. But with time, the aim is to monetize this game and create a full indie video game studio. You will receive revenue when it starts making benefits. As this is a large and unpaid project, it can become tedious and frustrating working on it. However, it will be worth it, at least for the experience and fun we can all get by making it! Looking forward to meet you! Gael. - UPDATE - You can find some details of the project here:
  6. I have created a GameObject array that contains 2 GameObjects with the same tag. I am trying to get each index value and use the index value for an OnClick event on each of the 2 GameObjects with the tag. The 2 GameObjects that have the same tag have a button component. I am trying to access the array index for each of the 2 GameObjects and use them for an OnClick method that recognises the appropriate index through conditional statements. The method "public void red_buttons_mthd ()" is attached to each OnClick for the button component of the 2 GameObjects . - GameObject array using FindGameObjectsWithTag. - Access each array index - Separate indexes using if statements - Access function from OnClick of each button component I get the error seen in the quote below. I have searched the internet and seen numerous forums on the issue of accessing index values and using them in conditional statements, however I can't seem to find a conclusive answer. If you need any more information do please let me know. public void red_buttons_mthd () { GameObject [] red_buttons_go = GameObject.FindGameObjectsWithTag ("red buttons"); for (int i = 0; i < red_buttons_go.Length; i++) if (red_buttons_go[0] == true ){ Debug.Log ("red button 1 pressedd"); } else if (red_buttons_go[1] == true [1]) { Debug.Log ("red button 2 pressed"); } } This is being developed in the unity game engine.
  7. Hello, i know this is the most random thing, but i need help, i am trying to make an idle game myself and publish it, but i am learning code by myself, and i am really lost, i got stuck with a null reference exception error when i was refering to variables and functions from another script and i have been stuck for hours the references work in start and update methods but not in the method i am trying to make for my buy button, i tried alot and alot, i think i spent over 7 hours trying to figure it out and whenever i asked anyone on any forrum who could help they refused and one said and i quote '' this is the simplest error you may as well leave game development'' and i really dont want to i am working against my circumstances and studying against what my parents want me to study( i am 17) i thought maybe you could relate and help, if you can help me please message me and ill send the code so you can maybe take a look at it, thank you.
  8. Hi, I have a big amount of animations and a big amount of characters, and I have to retarget those animations to the characters. Is there any free library which allows easy retargeting between models? What I'd need is this: * Supply a source FBX (or similar) with several animations, * Supply a destination FBX with a model and a skeleton * Supply a mapping between both skeletons for retargeting * Get as output another FBX with the animations of the first file "retargeted" to the second model This is usually automatically supplied by game engines (unreal, unity, ...) but I'm having a hard time trying to find a library that provides it (actually I've had a hard time to even find acceptable documentation to implement it) C# would be ideal (though unlikely), but any language would do Thanks!
  9. After really thinking about it, the method I've used to play MP3 wasn't the most flexible, so after re-working it out, I've decided to stream the music directly in a Unity AudioClip. This way, the audio goes through an audio mixer form which I can easily apply filter to... I was also able to cross-fade between two music track. I've also put the sound loading onto another thread, making the audio loading run in the background rather than clogging up the main thread. Also, it's easier to use the 【 VaporMaker】with the Unity Audio system... I can even add more wacky filters over it to make those songs more VAPORWAVE than ever.
  10. Hello. I am currently trying to program an enemy's movement across a platform. When it reaches the end of the platform, it supposed to turn around and walk to the other side of the platform. But when I test the game, the enemy only turns around the first time. When it starts walking and approaches the right side, it switches and starts moving to the left, but when it approaches the left side it just walks off. Here's my code: public float speed; public bool movingLeft; public bool grounded = false; public Transform groundedEnd; Rigidbody2D enemyBody; // Use this for initialization void Start () { enemyBody = GetComponent<Rigidbody2D>(); } // Update is called once per frame void Update () { Raycasting (); flipEnemy (); enemyMovement (); } //check if enemy is grounded void Raycasting(){ Debug.DrawLine (this.transform.position, groundedEnd.position, Color.green); grounded = Physics2D.Linecast (this.transform.position, groundedEnd.position, 1 << LayerMask.NameToLayer("Ground")); } //flip enemy before falling off the edge void flipEnemy(){ if(!grounded && movingLeft){ Vector2 localScale = gameObject.transform.localScale; localScale.x *= -1; transform.localScale = localScale; movingLeft = false; } if(!grounded && !movingLeft){ Vector2 localScale = gameObject.transform.localScale; localScale.x *= -1; transform.localScale = localScale; movingLeft = true; } } //what direction the enemy is facing/walking void enemyMovement(){ if (movingLeft) { enemyBody.velocity = new Vector2 (-speed, enemyBody.velocity.y); } if (!movingLeft) { enemyBody.velocity = new Vector2 (speed, enemyBody.velocity.y); } } }
  11. OpenMouthGaming

    where to start pls help

    so im going to be completely honest I have autism and adhd so my concentration and attention span is crap but in one month I have an interview for a game development school I need to be able to learn any or all of the programming languages in the tags in under a month at least just the basics so im able to make simple programs for a portfolio preferably the stuff will be free and interactive so not just videos and text thx
  12. Hello, Since March, I've been working with 3 other people to develop a Match-3 game with unique and new components to it. We're currently scheduling our release for sometime between October 20th-November 20th. We need assistance with programming, and they would be working with another programmer who has written most of the core game and social media integrations. We would be matching our standard rate that the rest of the team is receiving, and giving the added experience of progressing through the rest of the development cycle, so we offer a pretty good learning experience if this is your first game that is geared toward polish and release at high standards. Here's what we have and offer: Our legal ducks in a row: we have contracts, we have a real LLC, we have a bank account and federal Tax ID We have our website up and running, with a press kit, as well as a facebook page for marketing We have a marketing guide, with names, numbers and emails of Apple, Google Play, Amazon Appstore, Tech journalists, and traditional newsmedia Most of the core programming complete for upscaling Fantastic custom art by a dedicated artist Fantastic custom music by a professional composer Unique mechanics and style for the genre Unique local marketing opportunities that offer a built-in player base that coincide directly with our game Your voice and opinion will matter both for this game and any future designed project, including possible future opportunities after release Here's what we need: A programmer with a knowledge of C# and/or the Unity Game Engine Someone with an Entrepreneurial spirit who's willing to adapt or change when the situation needs it Someone who can have strong opinions, but also can compromise and puts the game and needs of the team first If interested please email me at Sam.Azzarano@EmmersionStudios.com so that we can talk about this exciting opportunity. Thank you for reading.
  13. Hello, I am using unity and I am confused on one part It's like I have three buttons out of which one has to be selected. If I have selected one of the three buttons during runtime and then I want to select the other button. How would Unity know that only one button has to be selected out of the three and unity has to disable the older selected button now? There must be some function to make unity know that it has to deselect the older option and select the newer one? I have attached a screen shot along with this. Thanks
  14. I've started to work on this lib for our current project. But, maybe gamedev community will be interested in it. Assume, you want to get your game version name and code. Yes, you will write something like this using AndroidJavaClass and AndroidJavaObject: public static int GetVersionCode() { AndroidJavaClass contextCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject context = contextCls.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject packageMngr = context.Call<AndroidJavaObject>("getPackageManager"); string packageName = context.Call<string>("getPackageName"); AndroidJavaObject packageInfo = packageMngr.Call<AndroidJavaObject>("getPackageInfo", packageName, 0); return packageInfo.Get<int>("versionCode"); } public static string GetVersionName() { AndroidJavaClass contextCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject context = contextCls.GetStatic<AndroidJavaObject>("currentActivity"); AndroidJavaObject packageMngr = context.Call<AndroidJavaObject>("getPackageManager"); string packageName = context.Call<string>("getPackageName"); AndroidJavaObject packageInfo = packageMngr.Call<AndroidJavaObject>("getPackageInfo", packageName, 0); return packageInfo.Get<string>("versionName"); } With this lib you can do same thing like this: var activity = Internal.GetCurrentActivity(); var pm = activity.GetPackageManager(); var pi = pm.GetPackageInfo(activity.GetPackageName(), 0); int code = pi.VersionCode; string name = pi.VersionName; There are not much you can do with this lib right now. But I'm going add new classes/methods from time to time. I appreciate any feedback. Also, would be great if you star this repo
  15. Vaporwave is synonymous with music. It is primordial that music must be spot on... But with recent takedowns of Vaporwave classics, let's just say that I'm less eager to have sampled Vaporwave included: I don't want that to spoil an otherwise perfectly good game. So I'm probably gonna ship the game with sample-free Vaporwave, made by yours truly. However, that's not the end of it. I'm going to let the user play their own Vaporwave if they like. That way I can secure myself from any takedown possible. I'm also going a step further and created the 【 VaporMaker】 Unity and audio As you're probably aware, Unity can play audio assets that are imported into the UnityEditor. This approach only works with packaged audio, however. This means that we need another way to play external files. There's a utility class that can be used to play any sound file from anywhere: WWW . This class is used to do simple HTTP requests and catch its results. If we use the "file://" protocol, we can actually load a file from the player's local machine. And what's more, is that there's a nice method for getting audio clips: WWW.GetAudioClip Cool, let's use that. WAIT, WHAT!?! MP3 ARE ONLY SUPPORTED ON PHONES!?!? That's no good... The workaround So, you're telling me that mp3, the most universally available file format, is not compatible with Unity's audio system? Yes. It appears so... Due to licences issues, Unity cannot be shipped with an MP3 decoder. Which is really weird, but we can't really do anything about it. Thankfully, Unity has C# and .NET, which are one of the most used tools nowadays. I'm pretty sure that there exists a way to fix this. Enter NAudio. NAudio NAudio is a .NET library that can load and play most audio files. This is really useful because we can then use that library rather than Unity's Audio system. NAudio is compatible with Unity, which is a big plus for us. Of course, we'll need to do a bit of fix around, but it's nothing really hard. NAudio is just a .dll. It's just a matter of dropping it in our Asset repository and voilà: you can now use NAudio in our scripts. Here's the little blog post I've followed if you're interested. Reading metadata Listening to mp3 is fun and all, but I also want the player to know which song is playing. Things like song title, artist, album title and even, if I can, the album cover... Most of the time, these pieces of information already exists within the .mp3 file itself as metadata. This is how, for example, most media players are able to display the album cover of a song. Similarly, this is also how some applications are able to group songs of the same album together. Depending on the used metadata convention, they are either at the very beginning of the file or at the end and can take many forms. We won't need to open a byte stream and manually seek these metadata ourselves. There's already plenty of libraries that are able to do that for us. Funny enough, the solution I've chosen came from the Linux world. Let me introduce you to Banshee. Banshee is an open source media player not unlike iTunes. It can manage one's music collection and play them. This program is written in C#, which coincidently is the same language as our favourite engine... The library responsible for reading such metadata in Banshee is called TagLib#. With a little bit of tinkering, we can include TagLib# in our Asset repository, making good use of it. After creating a UI element containing the metadata, here's the result: (The blurriness is part of the art style, trust me) The 【 VaporMaker】 Now we have both the data and the playback. But I'm not satisfied. Managing the music As you may (or may not know), Vaporwave is basically slowed downed music. Some artist chooses to keep the editing at a minimum, while some add a lot of butter on top, but it all boils down to slowed downed music. The idea I have is to let the player create their own Vaporwave to be used in the game by putting some mp3 file in a special folder. These files will be played at a slower speed than usual, thus creating some rudimentary Vaporwave. Although the idea is simple, NAudio itself doesn't come with such functions... However, they DO have a post on the subject. Basically, we'll add SoundTouch, an open source sound manipulation library. Although written in C++, we can still call its native function with the wrapper given by the post. One drawback is that we'll need to supply native .dll libraries for all platforms if it's doable. A few extra resources (Like a mac and Linux installations) are needed for this if you want multi-platform support, but nothing really hard. (If all fails, you can just copy/paste the source code and fix things here and there) So by following along the source code, we can add the required files in our Asset repository. Easy as pie. Once everything is set up, we'll just need to plug that VarispeedSampleProvider class into our mWaveOutDevice instead of the mVolumeStream like so (if you follow along that blog post I've referenced earlier) private void LoadAudioFromData(byte[] data, bool isVaporMaker) { MemoryStream tmpStr = new MemoryStream(data); mMainOutputStream = new Mp3FileReader(tmpStr); mWaveOutDevice = new WaveOut(); if (!isVaporMaker){ mVolumeStream = new WaveChannel32(mMainOutputStream); mWaveOutDevice.Init(mVolumeStream); } else { mSpeedControl = new VarispeedSampleProvider(WaveExtensionMethods.ToSampleProvider(mMainOutputStream), 100, new SoundTouchProfile(false, false)); mSpeedControl.PlaybackRate = 0.75f; mWaveOutDevice.Init(mSpeedControl); } } When we'll play the song, it'll play at any speed we specified by the PlaybackRate property of the VarispeedSampleProvider instance we constructed. Managing the art I've could have stopped there, but I STILL wasn't satisfied. I wanted to make a clear distinction between normal custom music and any piece that went through the 【 VaporMaker】. To do so, I've decided to change the album cover for something more vaporwave. When I fetch the album cover for vaporized songs, I actually map each pixel by their lightness to a gradient of two colours. I've also made those colours members of the MonoBehaviour so that they are available in the UnityEditor. TagLib.File file = TagLib.File.Create(filepath); TagLib.IPicture pic = file.Tag.Pictures[0]; Texture2D text = new Texture2D(2, 2); text.LoadImage(pic.Data.Data); for (int x = 0; x < text.width; ++x) { for (int y = 0; y < text.height; ++y) { float h,s,l; ColorExt.RGBToHSL(text.GetPixel(x,y), out h, out s, out l ); text.SetPixel(x, y, Color.Lerp(m_vaporMakerDarkCoverColor, m_vaporMakerLightCoverColor, l)); } } text.Apply(); Afterwards, when the UI displays the album cover of the vaporized song, it will use the funky artwork rather than the original one, Here, take a look: With all of this, I'm sure that this feature will be popular, If not only for the ability to play our custom music.
  16. I am developing a 2D UI in unity. I have developed a scroll-able list of buttons in which the buttons are intractable. What I am trying to achieve is to have a sub list of items for each button of the scroll able list. In essence, have buttons in the scroll able list that toggle a sub-list to being visible/hidden. Upon clicking a button the sub-list should appear vertically below the button that was pressed. When the sub list appears the buttons below the sub list should move negative in the vertical axis so that the sub list doesn't get covered/overlayed by the other buttons that make up the scroll able list. I have broken down what I am trying to achieve below. - Developing a 2D UI that has a scroll able list of buttons - Each button toggles a sub list visible/hiddenn that drops down below the button pressed - Upon the list dropping down the buttons below the sub list should move negatively in the vertical axis so that the sub list items are not covered/overlayed by the buttons below the one clicked/pressed. I have attached 2 images that show part of what I have done so far. If you have any questions do please let me know.
  17. Hi, I developed a FPS game about 8 years ago using SDLDotNet. It worked fine until recently. Something must have changed in some builtin API (it could be my Windows version). My FPS works by hiding the mouse cursor and re-centering it at each frame (so the cursor doesn't leave the window), however, when I recenter the mouse cursor, it fires an even that moves the mouse in the opposite direction, so my movement is cancelled. I tried many things like ignoring the event when the X and Y are the same as the center position but it didn't work. It seems that re-centering the mouse cursor is done on multiple intermediate frames. Could I get low level handle on the mouse motion instead? Are there other tricks I could use? Here's a sample of my code: public void OnMouseMotion(object sender, MouseMotionEventArgs args) { short relativeX = (short)(inputState.CurrentX - args.X); short relativeY = (short)(inputState.CurrentY - args.Y); inputState.CurrentX = args.X; inputState.CurrentY = args.Y; inputState.MouseMotionX = relativeX; inputState.MouseMotionY = relativeY; Cursor.Position = screenCenterPosition; }
  18. Seeking talent to polish sandbox game [GREENLIT] [UNPAID] [HOBBY] Website | Music | Youtube | IndieDB What is it? Nanoforge , is a first-person, sci-fi sandbox-adventure game, built in Unity (C#). Target: Digital Distribution (Steam, Humble, etc.) What have we accomplished? Greenlit, and approved for distribution on Steam Detailed GDD, narrative, and gameplay documents (27000+ words) to make development simple Established code base: All of the basic gameplay mechanics are in place, and usable! We’ve developed custom tools to make the level creation and modular level design a snap! Proper management: We’ve successfully used project management tools since the project’s inception, that allow us to complete tasks, communicate, and see the big picture. Modular from the start: We’ve developed custom tools to facilitate rapid creation of levels that are rich in detail! Perseverance: The game began (as a concept) in 2011, and has survived transitions between game engines, project management tools, programming languages, business models, and countless Skype calls. Detailed analytics: Every play session is tracked extensively via custom metrics, allowing us to view heatmaps of player movement, monitor enjoyment, and optimize the game to eliminate confusion Music/SFX: Over a dozen tracks posted on our Soundcloud page, as well as several custom SFX, made exclusively for the game. You can play it. Right now. Fully-functioning first-person sandbox gameplay, in fact. What do we offer? Credit in the game’s credits, powerful portfolio pieces and references Committed to the project? Your future employers will hear about it. Welcoming and determined team members: Ever lost track of time and stayed up late creating art? We’re like that. Flexibility: We’ve worked with team members from China, Italy, the U.K., Germany, Canada, the U.S., Poland, Russia, and Libya, in countless time-zones. We value your time, and work to create a consensus for all meeting times, so everyone is equally grumpy. Consistency: We’ve easily passed our hundredth sprint review/planning Skype call. Simple, efficient tools: In-house tools empower you to produce art that looks fantastic, whether in-game or on news sites. Industry experience: Over half of our contributors have worked on major titles in the past, or have had professional development experience, including work on titles such as Deus Ex: Human Revolution,Thief, and Halo 2. A path into the industry: Former Nanoforge devs now work at Epic Games, Turn10, Microsoft Studios, Eidos, Ubisoft and more. Presence at prominent game conventions, including PAX South, PlayOnCon, EGX Rezzed, and PAX East. We are part of the 5%: Virtually all remote-work-based game projects fail within the first six months. We didn’t. What do we need? C# Programmers C# experience required Prior experience with Unity a plus Communication skills Note: Other programmers, LEVEL DESIGNERS, and writers are also invited to apply! JOIN NOW FREQUENTLY ASKED QUESTIONS Where’s the gameplay footage? Just as AAA studios do, we keep our gameplay footage closely guarded, as it reveals our innovative take on sandbox gameplay. Additionally, releasing pre-release footage with non-final visuals could confuse potential players into believing that the footage is of the final version of the game. Sorry. How does the game compare to games like GMod or Minecraft? We’ve surpassed Minecraft’s Creative Mode in terms of functional features, and are closest to Garry’s Mod in terms of feature set. Any questions? Ask away!
  19. Since the big yearly professional cycling race (Le Tour de France) is being held at this moment, I wanted to work on my own Cycling Game. The first version of this game was launched about three weeks ago (link), but it still didn't feel finished. The main reason is that there was not too much difference in the players. All players had just one strength value (determining their race strength) and two different traits (like being better in the mountains or when riding solo). I wanted to try and change this by removing the traits and the single attribute and adding 14 new attributes. As of right now i have added the attributes mentioned below to the game. They don't actually do anything, that is the topic for the next update. Climbing, Composure, Condition, Descending, Determination, Flair, GroupTechnique, Luck, Restoration, SoloRiding, Sprinting, Stability, Strength, Tactics. My next goal is to remove the traits (that is going to be a big change, since they are used almost everywhere in the code) and then start to add functionality to the different traits and see how the game will feel afterwards. I will keep you posted!
  20. Finally, the barebones first version of my personal blog on game development is online. I will post my entries both on this website and on my personal blog on Blogger (link). Let's start with a little introduction about myself and my games, in the coming weeks I will try to post regularly on the subjects I am struggling with as I am improving the games I have made so far and as I think about new topics for new games. Enjoy! About me My name is Jaap, I live in the Netherlands and I enjoy both programming and designing games. I started the latter when i was probably around 8 years old and (according to my parents) i spent considerate amounts of time trying to create my own games with pawns, marbles, dinky toys and little toy soldiers. Theoretically this means i have been a game developer for 25 years 😉 When i was 12 i started programming in GWBASIC. I really liked it a lot and have been doing it a lot (sometimes more and sometimes less of course). I have tinkered with different languages and IDE's to finally settle on the ones mentioned below. Besides programming i have a full time job, a beautiful wife, two kids and two dogs (german shepherds). When i am not behind a computer trying to program stuff, i love to play video games myself or to go outside to go hiking or running with my dogs. Games I like (to create and to play) First of all, i really enjoy turnbased games. I love the ability to think about stuff and i hate losing because of a wrong buttonpress in the heat of the moment. Basically all the games i have built so far, and probably will build in the future are therefore turnbased. Besides computer games i really like sports a lot. Mostly football, cycling and running. This combined with the fact that i enjoy turnbased games is the reason why my favourite game of all time is the Football Manager series. It’s also for this reason that I started working on Cycling the board game and Football Manager Stories. Finally i love to build and manage stuff. I must have played each entry in the Civilization series for at least 100 hours or more. I also enjoyed older simulation/strategy games like Rollercoaster Tycoon, Settlers and Capitalism 2. These games inspired me to create the games Tycoon and Civilization Wars. My progamming experience I do not have any formal education in programming but i do enjoy the technical side of programming. I mostly work in Visual Studio, programming in the Monogame framework in C#. Back in 2012 i participated in the AI Mooc, organized by Stanford and Google. Why Black Wolf? Because i have an awesome black German Shepherd called Nero, who looks a lot like a wolf, I decided to make him my mascot for my game development. My games So far, i have started development on four different games: Cycling - the board game Tycoon Civilization wars Football manager stories Please click on any of the links to find out more about them (links go to my personal website). Thank you for reading!
  21. I have created a Boolean variable called 3D_pressed and have got the error "error CS1519: Unexpected symbol `3' in class, struct, or interface member declaration". How do I solve this? This is in unity using the the programming language C#.
  22. Ooohhhh boy. I'm back with more questions. I am having a horrible time with this pick up I'm working on. I've got multiple issues but I'm trying to make a list and work through them one by one. If you haven't already seen one of my other posts, I'm working on an arkanoid clone type game, with a pickup that when active, the ball will come back and hit the paddle, and as it leave the paddle, 6 additional balls should be spawned, with a short delay between each one, and then they all follow the first ball in a straight line away from the paddle until they all hit whatever is in front of them. Each ball is destroyed on impact except for the last ball in the line. So, onto my problem: Currently, the original ball hits the paddle and bounces away fine, and another ball is spawned. However, this ball is not spawned over the paddle like it should be. Some times it spawns right next to the paddle, sometimes it spawns half way across the screen. Left or right of the paddle, either way. Can't seem to find any rhyme or reason to it's spawn location. I have added code directly to this ball so that right after it is spawned, it's location should be initialized in a location over the paddle. I used the same code that I use on the original ball at the beginning of the game. Also, when this ball spawns, it falls. I thought I had it set so that the vector of the original ball would be assigned to this new ball and it would just move in the same direction as it, but apparently I'm missing something there. I'll post all my code for this pick up and also for the Ball class and maybe someone can explain what I'm doing wrong. This pickup is really making me lose my mind! AssaultRiflePickUp class: public class AssaultRiflePickUp : BasePickUp, ISpecialShotPickUp { private int AmmoRemaining = 35; private float timer = 0.3f; private Vector3 mainBallVector; public GameObject newBall; void Start () { //assign paddle to variable paddle = GameObject.FindObjectOfType<Paddle> (); //find the ball and assign it to this variable foreach (Ball ball in GameManager.pickUpManager.allBalls) { if (ball.mainBall) { mainBall = ball; } } } public override void ActivatePickUp (MonoBehaviour coroutineHost) { Debug.Log("ActivatePickUp"); //subscribe to events mainBall.onBallHitPaddle += AssaultRifleShot; mainBall.onBallCollided += DestroyExtraBalls; } public void SpecialShot () //spawn a new ball. add it to the list of balls. set it's spawn location, set it's velocity to match the original ball { Debug.Log("SpecialShot"); Instantiate(newBall); newBall.GetComponent<Ball>().hasStarted = true; GameManager.pickUpManager.allBalls.Add(newBall.GetComponent<Ball>()); newBall.GetComponent<Ball>().paddleToBallVector = newBall.transform.position - paddle.transform.position; newBall.transform.position = paddle.transform.position + newBall.GetComponent<Ball>().paddleToBallVector; //use the original ball's vector3 to follow it directly newBall.GetComponent<Rigidbody2D>().velocity = mainBallVector; } public void DestroyExtraBalls (GameObject ball) { if (GameManager.pickUpManager.allBalls.Count > 1) { } //TODO: Implement observer pattern to watch for balls colliding with something. If they do and they are not the main ball, destroy them. } public void DestroyPickUp () { Debug.Log("DestroyPickUp"); Destroy (GameManager.pickUpManager.pickUpQueue [0]); GameManager.pickUpManager.pickUpQueue.RemoveAt (0); GameManager.pickUpManager.pickUpActive = false; } //a timer used for timed pick ups public IEnumerator PowerUpTimer (float delay) { Debug.Log("PowerUpTimer"); yield return new WaitForSeconds (delay); SpecialShot(); } //The coroutine is used to start a short timer so that the balls don't spawn on top of each other all at the same time. public void StartCoroutine (float delay, MonoBehaviour coroutineHost) { coroutineHost.StartCoroutine(PowerUpTimer(delay)); } //Controls the pick up's cycle public void AssaultRifleShot (GameObject mainBall) { Debug.Log("AssaultRifleShot called"); mainBallVector = mainBall.GetComponent<Rigidbody2D>().velocity; //grab mainBall's direction and speed before making it a destroyable ball mainBall.GetComponent<Ball>().mainBall = false; //deactivate the original ball as the mainBall so that it may be destroyed on impact if (AmmoRemaining > 0) { Debug.Log("AssaultRifleShot - Inside If Statement"); //if there is ammo remaining, set the main ball to just a normal ball so it can be destroyed on impact and then start coroutine mainBall.GetComponent<Ball> ().mainBall = false; Debug.Log("AssaultRifleShot - 1"); mainBall.GetComponent<Ball> ().onBallHitPaddle -= AssaultRifleShot; //unsubscribe to event when mainBall is set to false. Debug.Log("AssaultRifleShot - 2"); StartCoroutine(timer, GameManager.monoBehaviour); Debug.Log("AssaultRifleShot - 3"); AmmoRemaining -= 1; Debug.Log("AssaultRifleShot - 4"); } else { DestroyPickUp(); } } } Side note: There is some base class code for the pick up, if it is decided that that is needed as well I can post it. But I don't think it's relevant. Ball class: public class Ball : MonoBehaviour { private Paddle paddle; public Vector3 paddleToBallVector; public bool mainBall = false; public float Speed { get; set; } public float MaxSpeed = 10.198f; public bool hasStarted = false; public delegate void DestroyBalls(GameObject ball); public event DestroyBalls onBallCollided; public delegate void BallHitPaddle(GameObject ball); public event BallHitPaddle onBallHitPaddle; void Start () { //find the paddle and assign it to variable paddle = GameObject.FindObjectOfType<Paddle> (); paddleToBallVector = this.transform.position - paddle.transform.position; Speed = 1; } // Update is called once per frame void Update () { if (!hasStarted) { //Lock the ball relative to the paddle. this.transform.position = paddle.transform.position + paddleToBallVector; //Wait for a mouse press to launch. if (Input.GetMouseButtonDown (0)) { hasStarted = true; this.GetComponent<Rigidbody2D> ().velocity = new Vector2 (2f, 10f); } } } void OnCollisionEnter2D (Collision2D collider) { //use this vector2 to adjust the velocity so the ball does not get stuck in a vertical bouncing loop if (hasStarted) { //apply sound when the ball hits something AudioSource audio = this.gameObject.GetComponent<AudioSource> (); audio.Play (); Vector2 tweak = new Vector2 (UnityEngine.Random.Range (0f, 0.2f), UnityEngine.Random.Range (0f, 0.2f)); //the following lines set the speed and direction of the ball based on built in physics, and the current speed of the ball. Speed can be changed based on pick ups this.gameObject.GetComponent<Rigidbody2D> ().velocity = this.gameObject.GetComponent<Rigidbody2D> ().velocity.normalized; this.gameObject.GetComponent<Rigidbody2D> ().velocity *= Speed * MaxSpeed; this.gameObject.GetComponent<Rigidbody2D> ().velocity += tweak; if (collider.gameObject.name == "Paddle" && this.mainBall) { if (onBallHitPaddle != null) { onBallHitPaddle (this.gameObject); } } } } }
  23. I am using the rts cam script and was wondering if it was possible to stop the camera from going out of sight of an object. This set up is being developed in unity and is for a 3D game. The camera is being used to rotate, pan and zoom in/around an object. At the moment I can move out of sight of the object. Is there a way to block the camera from going out of sight of the object? I have seen multiple ways to keep an object in sight through the camera, however I am unsure which route to take. I have attached the script being used below. public class RTSCam : MonoBehaviour { private float dist; private float orbitSpeedX; private float orbitSpeedY; private float zoomSpeed; public float rotXSpeedModifier=0.25f; public float rotYSpeedModifier=0.25f; public float zoomSpeedModifier=5; public float minRotX=-20; public float maxRotX=70; //public float minRotY=45; //public float maxRotY=315; public float minZoom=3; public float maxZoom=15; public float panSpeedModifier=1f; // Use this for initialization void Start () { dist=transform.localPosition.z; DemoSceneUI.SetSceneTitle("RTS camera, the camera will orbit around a pivot point but the rotation in z-axis is locked"); string instInfo=""; instInfo+="- swipe or drag on screen to rotate the camera\n"; instInfo+="- pinch or using mouse wheel to zoom in/out\n"; instInfo+="- swipe or drag on screen with 2 fingers to move around\n"; instInfo+="- single finger interaction can be simulate using left mosue button\n"; instInfo+="- two fingers interacion can be simulate using right mouse button"; DemoSceneUI.SetSceneInstruction(instInfo); } void OnEnable(){ IT_Gesture.onDraggingE += OnDragging; IT_Gesture.onMFDraggingE += OnMFDragging; IT_Gesture.onPinchE += OnPinch; orbitSpeedX=0; orbitSpeedY=0; zoomSpeed=0; } void OnDisable(){ IT_Gesture.onDraggingE -= OnDragging; IT_Gesture.onMFDraggingE -= OnMFDragging; IT_Gesture.onPinchE -= OnPinch; } // Update is called once per frame void Update () { //get the current rotation float x=transform.parent.rotation.eulerAngles.x; float y=transform.parent.rotation.eulerAngles.y; //make sure x is between -180 to 180 so we can clamp it propery later if(x>180) x-=360; //calculate the x and y rotation //Quaternion rotationY=Quaternion.Euler(0, Mathf.Clamp(y+orbitSpeedY, minRotY, maxRotY), 0); Quaternion rotationY=Quaternion.Euler(0, y+orbitSpeedY, 0); Quaternion rotationX=Quaternion.Euler(Mathf.Clamp(x+orbitSpeedX, minRotX, maxRotX), 0, 0); //apply the rotation transform.parent.rotation=rotationY*rotationX; //calculate the zoom and apply it dist+=Time.deltaTime*zoomSpeed*0.01f; dist=Mathf.Clamp(dist, -maxZoom, -minZoom); transform.localPosition=new Vector3(0, 0, dist); //reduce all the speed orbitSpeedX*=(1-Time.deltaTime*12); orbitSpeedY*=(1-Time.deltaTime*3); zoomSpeed*=(1-Time.deltaTime*4); //use mouse scroll wheel to simulate pinch, sorry I sort of cheated here zoomSpeed+=Input.GetAxis("Mouse ScrollWheel")*500*zoomSpeedModifier; } //called when one finger drag are detected void OnDragging(DragInfo dragInfo){ //if the drag is perform using mouse2, use it as a two finger drag if(dragInfo.isMouse && dragInfo.index==1) OnMFDragging(dragInfo); //else perform normal orbiting else{ //apply the DPI scaling dragInfo.delta/=IT_Gesture.GetDPIFactor(); //vertical movement is corresponded to rotation in x-axis orbitSpeedX=-dragInfo.delta.y*rotXSpeedModifier; //horizontal movement is corresponded to rotation in y-axis orbitSpeedY=dragInfo.delta.x*rotYSpeedModifier; } } //called when pinch is detected void OnPinch(PinchInfo pinfo){ zoomSpeed-=pinfo.magnitude*zoomSpeedModifier/IT_Gesture.GetDPIFactor(); } //called when a dual finger or a right mouse drag is detected void OnMFDragging(DragInfo dragInfo){ //apply the DPI scaling dragInfo.delta/=IT_Gesture.GetDPIFactor(); //make a new direction, pointing horizontally at the direction of the camera y-rotation Quaternion direction=Quaternion.Euler(0, transform.parent.rotation.eulerAngles.y, 0); //calculate forward movement based on vertical input Vector3 moveDirZ=transform.parent.InverseTransformDirection(direction*Vector3.forward*-dragInfo.delta.y); //calculate sideway movement base on horizontal input Vector3 moveDirX=transform.parent.InverseTransformDirection(direction*Vector3.right*-dragInfo.delta.x); //move the cmera transform.parent.Translate(moveDirZ * panSpeedModifier * Time.deltaTime); transform.parent.Translate(moveDirX * panSpeedModifier * Time.deltaTime); } //for the camera to auto rotate and focus on a predefined position /* public float targetRotX; public float targetRotY; public float targetRotZ; public Vector3 targetPos; public float targetZoom; IEnumerator LerpToPoint(){ Quaternion startRot=transform.parent.rotation; Quaternion endRot=Quaternion.Euler(targetRotX, targetRotY, targetRotZ); Vector3 startPos=transform.parent.position; Vector3 startZoom=transform.localPosition; float duration=0; while(duration<1){ transform.parent.rotation=Quaternion.Lerp(startRot, endRot, duration); transform.parent.position=Vector3.Lerp(startPos, targetPos, duration); transform.localPosition=Vector3.Lerp(startZoom, new Vector3(0, 0, -targetZoom), duration); duration+=Time.deltaTime; yield return null; } transform.parent.rotation=endRot; transform.parent.position=targetPos; transform.localPosition=new Vector3(0, 0, -targetZoom); } */ /* private bool instruction=false; void OnGUI(){ string title="RTS camera, the camera will orbit around a pivot point but the rotation in z-axis is locked."; GUI.Label(new Rect(150, 10, 400, 60), title); if(!instruction){ if(GUI.Button(new Rect(10, 55, 130, 35), "Instruction On")){ instruction=true; } } else{ if(GUI.Button(new Rect(10, 55, 130, 35), "Instruction Off")){ instruction=false; } GUI.Box(new Rect(10, 100, 400, 100), ""); string instInfo=""; instInfo+="- swipe or drag on screen to rotate the camera\n"; instInfo+="- pinch or using mouse wheel to zoom in/out\n"; instInfo+="- swipe or drag on screen with 2 fingers to move around\n"; instInfo+="- single finger interaction can be simulate using left mosue button\n"; instInfo+="- two fingers interacion can be simulate using right mouse button"; GUI.Label(new Rect(15, 105, 390, 90), instInfo); } } */ }
  24. Hope rises as pieces of the overworld are coming together. Weighed down by post-delay sad vibes all week and only just now getting back into the swing of things as I write this at 3:30am on a Wednesday. This week was code fever and I wore a programmer cap tight while sprucing up BGP's bones. Lots of things are working better than ever, and lots more are sure to come. The real issue right now is seeing how much can get up and running before BronyCon. The panel is going to be a slideshow about game development in general, some Q&A between slides, how I came up with and created BGP, and what features I have left to create and how I plan to implement them. And all that will be sandwiched between a Trailer to show off the game and a gameplay demo of the battle system and overworld. Then I'd like to have some sort of teaser finale to send everyone off with and encourage them to download the demo to their phones on the way out so they can remember the game later. But how much I can show depends on how far I get in the next 6 days, so fingers crossed, I won't hit any more road blocks. Every precious minute counts right now, and I think I might just barely make it. So let's see what's been done in the past few days.Read More: yotesgames.com
  25. How to get the selected scene's triangles in code in menuitem?
  • 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!