Sign in to follow this  
mcaccountman

Unity Need help for game. C#

Recommended Posts

Well as everyone knows you are supposed to make C# games in XNA or Unity. But for me i find it 10x more interesting doing it with the c# framework by itself. Is this bad or will the game be possible without the fancy enxtensions?

Share this post


Link to post
Share on other sites

I don't really understand what you mean by the "C# framework" and you can't really put XNA and Unity in the same category. XNA is/was a framework while Unity is an entire ecosystem.

If you want a useful answer you will have to tell us what you're aiming for.

Share this post


Link to post
Share on other sites

Using the C# language and the .NET Framework you are still leveraging tools made by others.  You're just leveraging different tools.

 

Professional studios rely on all kinds of libraries.  There is generally no need to rewrite everything yourself.  In the 1980s you needed to write your own graphics drivers for every card, your own audio systems that wrote directly to the memory locations and IO ports of the different audio cards.  Over time more middleware came out where you could hit a generic driver for many different audio cards, or VESA drivers for a bunch of video cards. These days we hit systems like OpenGL or DirectX for graphics, we use systems like WWise or FMod for audio. And that can mean relying on major engines like Unity or Unreal as well.

 

There is nothing inherently wrong with doing it all yourself.  You could even write your game entirely in machine code if you felt the urge.  But doing so is directly at odds with productivity.

 

You can take advantage of systems that would take thousands of hours, tens of thousands of hours, or even millions of hours for you to develop on your own.  And that is exactly why most groups do it.

Share this post


Link to post
Share on other sites

I don't really understand what you mean by the "C# framework" and you can't really put XNA and Unity in the same category. XNA is/was a framework while Unity is an entire ecosystem.

If you want a useful answer you will have to tell us what you're aiming for.

Im aiming for c# without the game extensions like XNA or Unity. Just plain c# and graphics, such as  

 

e.Graphics.DrawRectangle(new Pen(Color.Black), daleTalkRadius);

                daleTalkRadius.Location = new Point(dalex - 100, daley - 70);
                e.Graphics.FillRectangle(new SolidBrush(Color.PeachPuff), entityDale);
                e.Graphics.FillRectangle(new SolidBrush(Color.PeachPuff), entityThief);
                entityDale.Location = new Point(dalex, daley);
                entityThief.Location = new Point(thiefwalkx, thiefwalky);

Share this post


Link to post
Share on other sites

I don't really understand what you mean by the "C# framework" and you can't really put XNA and Unity in the same category. XNA is/was a framework while Unity is an entire ecosystem.

If you want a useful answer you will have to tell us what you're aiming for.

 

Unity is a skeleton. You're still doing most of the work if you want to make something interesting.

But... yeah. Programming the entire thing from scratch with C# is a lot harder than you really think it is... but if you want access to source, I suggest taking a look at Paradox Engine.

It's entirely built in C# and is open source.

Has PBR, and is making some very decent progress. Not sure if it has a working terrain system however... but you can implement that yourself.

Share this post


Link to post
Share on other sites


Im aiming for c# without the game extensions like XNA or Unity. Just plain c# and graphics, such as  

 

If GDI works for you, that's totally fine as a first step. Just be aware of the limitations, such as the lack of hardware acceleration.

Direct2D was designed as a replacement for GDI and is the more modern option.

Share this post


Link to post
Share on other sites

 

I don't really understand what you mean by the "C# framework" and you can't really put XNA and Unity in the same category. XNA is/was a framework while Unity is an entire ecosystem.

If you want a useful answer you will have to tell us what you're aiming for.

Im aiming for c# without the game extensions like XNA or Unity. Just plain c# and graphics, such as  

 

e.Graphics.DrawRectangle(new Pen(Color.Black), daleTalkRadius);

                daleTalkRadius.Location = new Point(dalex - 100, daley - 70);
                e.Graphics.FillRectangle(new SolidBrush(Color.PeachPuff), entityDale);
                e.Graphics.FillRectangle(new SolidBrush(Color.PeachPuff), entityThief);
                entityDale.Location = new Point(dalex, daley);
                entityThief.Location = new Point(thiefwalkx, thiefwalky);

 

XNA is a high level framework built on DirectX for gaming purposes (XBOX, some kind of phone I forgot and windows).
Using WFA (Which is bad because you should relay on WPF today and NOT windows forms) is exactly like using XNA (Both needs the dlls and framework installed).
They are both frameworks which were developed by Microsoft to do some sort of work. 
GDI isn't suitable for high professional game development.
 

If you don't want XNA there are couple of wrappers for OpenGL in C# (OpenTK is one of them) and wrappers for DirectX.

 

In the end, every framework have to be installed on the system for the game to work,

either if it's XNA, Unity, or plain GDI, the difference is when you install it.

Some come built-in with Windows, others have to be installed. 

Edited by WoopsASword

Share this post


Link to post
Share on other sites


Just be aware of the limitations, such as the lack of hardware acceleration.

This to me can be important.  I think what you're doing is doable but if your game is or will be cpu heavy, hardware acceleration can matter depending on how much you draw (especially alphablended sprites)(and the hardware of your audience).  But if its your first game and its small in scope, then by all means if it makes you comfortable then go for it.  But I think you'll most likely want to use a framework or engine at some point so you're gonna have to learn one eventually.

Share this post


Link to post
Share on other sites

I understand where you are coming from.  I've written several game engines myself in different languages and at first it seem easier to do because I don't have to learn what someone else has designed but after a while it becomes more difficult because of bugs and the amount of new features needed.

 

Using GDI+ as your graphics engine can be very tricky.  It doesn't have access to the video card so it can be fairly slow in drawing.  You may need to create a back buffer to render on then present that image to the screen when done.  You may run into many headache that could be avoid by using a library designed to draw directly to the video card.

 

The one question you should ask yourself.  Do you like making games or programming engines?  By the sounds of it you find it more fun to tinker with technology and see how you can push your hardware around.  This can be more fun for some people then the process of actually making a game.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Forum Statistics

    • Total Topics
      628282
    • Total Posts
      2981820
  • Similar Content

    • By ForgedInteractive


      Who We Are
      We are Forged Interactive, a small team of like-minded game developers with the sole purpose of making games we love! We're a team of artists, animators, programmers, level designers, writers, composers, producers, and other creative minds. We want to make games that you, the modern gamer want to play! We hope to build a community that enjoys our games as much as we love creating them. With your feedback and support we will be able to achieve that.

      About the Game
      GAME NAME is a fun, action-packed army builder with unique characters, challenges and engaging levels. Set forth on an adventure to protect friends, family and countrymen from new adversaries. Once defeated your enemies turn coat and join you in your adventures. Players can enjoy a range of troops and abilities based on their gameplay style which become more important as maps introduce more challenging terrain, enemies and bosses. Strong orc knights, dangerous shamans, and even a dragon are out on the prowl. Knowing when to fight and when to run, and how to manage your army is essential. Your actions alone decide the fate of this world.

      Previous Work by Team
      Although we are working towards our first game as a team, our team members themselves have past experience in the industry.
      This includes members who have worked on titles including:
      Final Fantasy Kingsglaive, FIFA, Xcom 2 and Civilization.

      Who are we looking for? 3D Modellers Concept Artists Marketing Specialists Level Designer

      What do we expect? Reference work or portfolio. Examples what have you already done and what projects you have worked on academic or otherwise. The ability to commit to the project on a regular basis. If you are going on a two-week trip, we don't mind, but it would be good if you could commit 10+ hours to the project each week. Willingness to work with a royalty based compensation model, you will be paid when the game launches. Openness to learning new tools and techniques
      What can we offer? Continuous support and availability from our side. You have the ability to give design input, and creative say in the development of the game. Shown in credits on websites, in-game and more. Insight and contacts from within the Industry.
      Contact
      If you are interested in knowing more or joining. Please email or PM us on Skype. Myself or Colin will reply to you within 48 hours.

      E-mail: Recruitment@ForgedInteractive.com
      Skype: ForgedInteractive

      Regards,
      David and Colin

      Follow us on:

      Facebook: https://www.facebook.com/ForgedInteractive/
      Twitter: @ForgedInteract
      Youtube: https://www.youtube.com/channel/UCpK..._as=subscriber
      Reddit: https://www.reddit.com/user/Forged_Interactive/
    • By Eck
      I just saw their courses were knocked down to $10 each and figured I'd share the info here. They have stuff for Unity, Unreal, drawing, business, etc. I haven't used their stuff before, but the previews I looked at seemed pretty good and there is a user review system as well.
      https://www.udemy.com/courses/search/?q=Unity&src=ukw
      - Eck
       
    • By zizulot
      first and only logo , for now
    • By sidbhati32
      I am working on a game in which we control a rectangular box at the bottom of the screen. Three sphere which has alphabets in it fall down. When the game starts, a word is generated from the predefined list of words(which I'll give) and we are supposed to touch the correct sphere having the alphabet based on that word. The question is how to detect if I have touched the correct sphere. 
      secondly, if I have touched a correct sphere before and there is no recurrence of that alphabet in that word then during the second wave the game should not proceed if I touch the same alphabet again.
      Looking forward to your answers, i have to submit this project in a couple of days. please help! (Working on Unity 3D)
      Thanks
    • By NDraskovic
      Hey guys,   As the title says, I'm trying to control a desktop game by using my mobile phone as a controller.  I created two scenes, one that acts as a server, other as a client.    Server has this code: void Start () {         Test = "Nothing yet happened";         NetworkServer.Listen(25000);         NetworkServer.RegisterHandler(888, ServerReceiveMessage);     }         private void ServerReceiveMessage(NetworkMessage message)     {                 StringMessage msg = new StringMessage();         msg.value = message.ReadMessage<StringMessage>().value;         if (!String.IsNullOrEmpty(msg.value))         {             Test = "Message received";             string[] deltas = msg.value.Split('|');             Horizontal = Convert.ToSingle(deltas[0]);             Vertical = Convert.ToSingle(deltas[1]);             TestScript.MoveForward(Vertical);             TestScript.RotateAroundY(Horizontal);         }         else         {             Test = "Nothing received";         }     }  
        And client this:  private void Connect()     {              client.Connect(IPAddress, 25000);           }     void Start () {         client = new NetworkClient();         Connect();            }         void Update () {    #if UNITY_ANDROID         MobileTouches = Input.touches;         if (MobileTouches.Length > 0)         {             for (int i = 0; i < MobileTouches.Length; i++)             {                 if (MobileTouches[i].phase == TouchPhase.Moved)                 {                     Horizontal = MobileTouches[i].deltaPosition.x;                     Vertical = MobileTouches[i].deltaPosition.y;                 }else if(MobileTouches[i].phase == TouchPhase.Stationary)                 {                     Connect();                                  }             }         } #elif UNITY_EDITOR               Horizontal = Input.GetAxis("Horizontal");         Vertical = Input.GetAxis("Vertical"); #endif         thumb.Translate(Vector3.up * Vertical * Time.deltaTime);         thumb.Translate(Vector3.right * Horizontal * Time.deltaTime);         SendControllerInfo();     }     static public void SendControllerInfo()     {         if (client.isConnected)         {             StringMessage msg = new StringMessage();             msg.value = Horizontal + "|" + Vertical;             client.Send(888, msg);         }     }  
        Ip address is hard coded, I just replaced it with the "IpAddress" variable. The code itself builds fine, and when I try to run in on a desktop computer, it works as expected (just a simple movement of an object on the server screen). However when I try to publish the client scene to a mobile device (Android), it doesn't connect to the server. They are both connected to the same network. Can anyone tell me what the problem might be?   Thanks
  • Popular Now