Jump to content
31 minutes ago, wasab said:

Can it run on Linux? If not I'm giving it a thumbs down. 

Monodevelop is a  compiler that works on Linux & can compile C#. Since it's source code, you should have no problem. Microsoft made C# open source supposedly a few years ago. 
https://www.monodevelop.com/download/#fndtn-download-lin
As for OP, I am about to take a look. I've been looking forward to checking it out all morning. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681194
Share on other sites

Link to post
Share on other sites

Initial Impressions without viewing code

To start, after downloading opening .sln & pressing start... the application didn't do anything :( 
Building the Game section turned out to produce something in the Bin. 

Spoiler

image.png.da7b93293b4858f9ecbd7547f69198dd.png

The game has nothing much in it. Just mario & so. 
It's kinda weird how Mario can just walk off the screen & never be retrievable again. 
As for the jump, it does work & when I made a game with Game Maker, I didn't make anything better. My jump was a teleport up & fall down. 
If I were to change it, I'd add a velocity & mass to mario. Using basic physics to have the velocity tween mario up & back down like the original game on NES. The movement is also a bit choppy. If you've ever held down a key in Microsoft Word, it's as if the Mario guy walks the same way. In the Java STD Draw Library, what I did was I basically did the following every update of the game. My games ran in a while true loop. These were standalone games though. No engine underneath unless you count the API I used. 

Spoiler

if (STD.KeyIsDown("RightArrow"){
	player.xpos += movementSpeed;
}

 

 

Additionally, you have the FPS status in the upper left of the game window. I do like this feature. The only thing I dislike is its flashy nature. This is a VERY tricky technique, but some developers avoid this flashing by only updating parts of the screen that have changed. Another technique is to draw the entire frame before telling the graphics card to display anything. That might also be a bit tricky. 

The only Graphics API I worked with was the Princeton STDDraw Java library. Whenever we wanted to move something & not just draw on top of the old, we'd wipe the screen with a color & then draw everything on top which could produce a similar flashing result. 

I love the console window too that tells me how everything is loaded in. 

I doubt you listened to the whole song you play when the game is running, but it does end & not loop. I presume that when testing you haven't left the game running long enough to notice. Just an observation. 

 

Looking through code

Now that I'm looking through your code, I like that your GameLoop.cs checks for errors to prevent crashing & informs the user that an error may have occurred. 
Initially I was a bit confused wondering where your game code was as I was looking at the DemoGame's folder trying to find out where everything was haha. 

I have been seeing some Thread usage. How many threads does the engine use? Up to 2 or do you know it uses more concurrently? 

 

Other than that, it's a bit difficult to follow how things are interacting without explanation. I saw something somewhere where you said "Game Engine without GUI interface" so I was expecting something like the program showcased at around 5:30

Spoiler

 


Did you use the C# built in graphics API? I heard CS had some form of 2D graphics solution besides Windows Forms drag and drop user interface. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681283
Share on other sites

Link to post
Share on other sites

2 hours ago, fpo said:

Initial Impressions without viewing code

To start, after downloading opening .sln & pressing start... the application didn't do anything :( 
Building the Game section turned out to produce something in the Bin. 

  Hide contents

image.png.da7b93293b4858f9ecbd7547f69198dd.png

The game has nothing much in it. Just mario & so. 
It's kinda weird how Mario can just walk off the screen & never be retrievable again. 
As for the jump, it does work & when I made a game with Game Maker, I didn't make anything better. My jump was a teleport up & fall down. 
If I were to change it, I'd add a velocity & mass to mario. Using basic physics to have the velocity tween mario up & back down like the original game on NES. The movement is also a bit choppy. If you've ever held down a key in Microsoft Word, it's as if the Mario guy walks the same way. In the Java STD Draw Library, what I did was I basically did the following every update of the game. My games ran in a while true loop. These were standalone games though. No engine underneath unless you count the API I used. 

  Hide contents


if (STD.KeyIsDown("RightArrow"){
	player.xpos += movementSpeed;
}

 

 

Additionally, you have the FPS status in the upper left of the game window. I do like this feature. The only thing I dislike is its flashy nature. This is a VERY tricky technique, but some developers avoid this flashing by only updating parts of the screen that have changed. Another technique is to draw the entire frame before telling the graphics card to display anything. That might also be a bit tricky. 

The only Graphics API I worked with was the Princeton STDDraw Java library. Whenever we wanted to move something & not just draw on top of the old, we'd wipe the screen with a color & then draw everything on top which could produce a similar flashing result. 

I love the console window too that tells me how everything is loaded in. 

I doubt you listened to the whole song you play when the game is running, but it does end & not loop. I presume that when testing you haven't left the game running long enough to notice. Just an observation. 

 

Looking through code

Now that I'm looking through your code, I like that your GameLoop.cs checks for errors to prevent crashing & informs the user that an error may have occurred. 
Initially I was a bit confused wondering where your game code was as I was looking at the DemoGame's folder trying to find out where everything was haha. 

I have been seeing some Thread usage. How many threads does the engine use? Up to 2 or do you know it uses more concurrently? 

 

Other than that, it's a bit difficult to follow how things are interacting without explanation. I saw something somewhere where you said "Game Engine without GUI interface" so I was expecting something like the program showcased at around 5:30

  Hide contents

 


Did you use the C# built in graphics API? I heard CS had some form of 2D graphics solution besides Windows Forms drag and drop user interface. 

Really? I can develop 3d games with C# on Linux? Does opengl API exist for C#? Cant make3d graphics without that. 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681703
Share on other sites

Link to post
Share on other sites

6 minutes ago, wasab said:

Really? I can develop 3d games with C# on Linux? Does opengl API exist for C#? Cant make3d graphics without that. 

C# has a Graphics API. I think it might only be 2D though. As far as I know Open GL is a standard for C only. Though I've heard the standard might have been adapted to languages like Java & Python. More information should be on the Open GL website. 
Open GL works in C++ because as you know, C++ is only an extension to the C language. 

 

I think you know Java though. You can use the LWJGL (Lightweight Java Game Library) that has Open GL, Open AL & more included in the library. Notch used it to develop Minecraft. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681741
Share on other sites

Link to post
Share on other sites

16 minutes ago, fpo said:

C# has a Graphics API. I think it might only be 2D though. As far as I know Open GL is a standard for C only. Though I've heard the standard might have been adapted to languages like Java & Python. More information should be on the Open GL website. 
Open GL works in C++ because as you know, C++ is only an extension to the C language. 

 

I think you know Java though. You can use the LWJGL (Lightweight Java Game Library) that has Open GL, Open AL & more included in the library. Notch used it to develop Minecraft. 

OpenGL have been implemented in both java and python through bindings.  

I am gonna need to code 3d graphics, especially if I'm making an engine from scratch. If C# doesn't have it on Linux then no point. 

 

Edit: Nevermind, it actually does 

https://www.khronos.org/opengl/wiki/Language_bindings#C.23

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681782
Share on other sites

Link to post
Share on other sites

10 minutes ago, wasab said:

OpenGL have been implemented in both java and python through bindings.  

I am gonna need to code 3d graphics, especially if I'm making an engine from scratch. If C# doesn't have it on Linux then no point. 

 

Edit: Nevermind, it actually does 

https://www.khronos.org/opengl/wiki/Language_bindings#C.23

There are 2D game engines in use. 
IE the 2D elements of Unity 3D, Game Maker, Construct, RPG Maker, Clickteam Fusion & so fourth. 

I don't think OP's supports 3D graphics ATM though the logic shouldn't depend on the graphics. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681829
Share on other sites

Link to post
Share on other sites

13 minutes ago, fpo said:

There are 2D game engines in use. 
IE the 2D elements of Unity 3D, Game Maker, Construct, RPG Maker, Clickteam Fusion & so fourth. 

I don't think OP's supports 3D graphics ATM though the logic shouldn't depend on the graphics. 

You need to go bare metal and code your own engine if you want more control over how graphics are handle tho. Commerical engines like unity are quick to get everything up and running but things may not be excatly how you want depending on how they do the graphics. Not to mention the expensive licensing fee if you are ever gonna commericalized your games....

 

I know enough C++ to code in it. Java is still my strongest language but I'm a purist so I like to stick with the default, which in this case is C++. This is also the reason why I dislike C# and mono on Linux. 

 

One of my college 400 level course is actually all about computer graphics. It goes over both 3d and 2d. Anyone can learn online however. This is a good website to start.

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/

 

Here is an advice. Don't use QtCreator for Linux like this website suggests. That shit is horrible. Use Clion instead if you qualify for the student account. 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11681897
Share on other sites

Link to post
Share on other sites

1 hour ago, wasab said:

One of my college 400 level course is actually all about computer graphics. It goes over both 3d and 2d. Anyone can learn online however. This is a good website to start.

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/

Is that the website your school uses?

I'm going back to college & they don't have a computer graphics class. I found learnopen.com (from a "Remaking Minecraft in Open GL" YouTube description,) but couldn't get it working. Before I wrote any code it was lacking in how to setup Open GL so I never got to program anything. 

 

EDIT:
 

Spoiler

If I violate this... Do I have to pay any court fines? Like what if I don't want to support something but someone forces me to at like gunpoint?

Quote

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

 

 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682267
Share on other sites

Link to post
Share on other sites

29 minutes ago, fpo said:

Is that the website your school uses?

I'm going back to college & they don't have a computer graphics class. I found learnopen.com (from a "Remaking Minecraft in Open GL" YouTube description,) but couldn't get it working. Before I wrote any code it was lacking in how to setup Open GL so I never got to program anything. 

 

EDIT:
 

  Reveal hidden contents

If I violate this... Do I have to pay any court fines? Like what if I don't want to support something but someone forces me to at like gunpoint?

 

 

ah... no. it is just something i found online. this is the actual course description

https://www.cs.stonybrook.edu/students/Undergraduate-Studies/courses/CSE328

This is full list of stuff my school teaches 

https://www.cs.stonybrook.edu/students/Undergraduate-Studies/csecourses

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682329
Share on other sites

Link to post
Share on other sites

26 minutes ago, wasab said:

ah... no. it is just something i found online. this is the actual course description

I like that they give you project files. I don't think the website I found had those which is a pro & con. 

Quote

~snip~

This is full list of stuff my school teaches 

~snip~

Ahh, I heard of that school. Used to be a big party school I think. 


Funnily, Princeton uses the same book haha:
https://www.cs.princeton.edu/courses/archive/spr05/cos426/lectures/01-intro.pdf

("Administrative Matters" slide.)

Thanks for the info. 

/Sorry For Hijack! lol. Kinda contributes? 

EDIT:
I think it was published 2003. I think no. Not getting that book for the $5~ price tag. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682393
Share on other sites

Link to post
Share on other sites

1 minute ago, fpo said:

 

Ahh, I heard of that school. Used to be a big party school I think. 

 

 

 I wish. kids here are mostly socially inept

2 minutes ago, fpo said:

 


Funnily, Princeton uses the same book haha:

 

so purchase the textbook. you dont need to sit in a lecture hall listening to pretentious professors to learn stuffs. 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682409
Share on other sites

Link to post
Share on other sites

Just now, wasab said:

 I wish. kids here are mostly socially inept

kek

Just now, wasab said:

so purchase the textbook. you dont need to sit in a lecture hall listening to pretentious professors to learn stuffs. 

I edited. It's a bit outdated. The last book I got from 2006 was still extremely outdated. 

I think I'll try that website you showed me & see where I can get with it. 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682419
Share on other sites

Link to post
Share on other sites

2 minutes ago, fpo said:

kek

I edited. It's a bit outdated. The last book I got from 2006 was still extremely outdated. 

I think I'll try that website you showed me & see where I can get with it. 

https://www.amazon.com/Computer-Graphics-Open-GL-4th/dp/0136053580

This is 2012, around the time opengl is 4.4. opengl now is still 4.x so it should work fine. 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682431
Share on other sites

Link to post
Share on other sites

2 minutes ago, wasab said:

https://www.amazon.com/Computer-Graphics-Open-GL-4th/dp/0136053580

This is 2012, around the time opengl is 4.4. opengl now is still 4.x so it should work fine. 

Ahh I found an older version then. 

..165 USD? Yeah... Hello, PirateDownloadWebsite.com

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11682440
Share on other sites

Link to post
Share on other sites

14 hours ago, fpo said:

Ahh I found an older version then. 

..165 USD? Yeah... Hello, PirateDownloadWebsite.com

Paper back is $20 something. 

That book focuses a lot on theory. You will be facing hardcore linear algebra. Hope you like working with vectors and matrices. 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11683831
Share on other sites

Link to post
Share on other sites

On ‎8‎/‎24‎/‎2018 at 5:24 AM, TheGamingHD said:

Hello, I have been making a game engine in my spare time and I would like some feedback. Its entirely in c# and includes a demo game.

 

here's the Github link: https://github.com/Jordonbc/CS_GameEngine

I'm genuinely not trying to come off as a prick when I say this however my question is this: why are you making a game engine? What are you attempting to achieve with this that you can't achieve with any other engine.

 

Again, I'm honestly curious and am not trying to come off as a prick.

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11683883
Share on other sites

Link to post
Share on other sites

51 minutes ago, BOOM BOX said:

I'm genuinely not trying to come off as a prick when I say this however my question is this: why are you making a game engine? What are you attempting to achieve with this that you can't achieve with any other engine.

Learning the basics. Fun. Maybe he’ll learn more concepts and be able to develop an engine to better suit his needs at a later date tailoring the engine to compute things needed for a game he’s developing. Many companies have in house engines & need programmers for it. Ubisoft is not going to pay the 5% royalty fee on unreal engine. At least that’s my guess.

 

1 hour ago, wasab said:

Paper back is $20 something. 

That book focuses a lot on theory. You will be facing hardcore linear algebra. Hope you like working with vectors and matrices. 

I actually have a book with the theory, just lacks the code to go with it. 

Maybe if I need more theory, I can look into it thanks! 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11683973
Share on other sites

Link to post
Share on other sites

3 hours ago, BOOM BOX said:

I'm genuinely not trying to come off as a prick when I say this however my question is this: why are you making a game engine? What are you attempting to achieve with this that you can't achieve with any other engine.

 

Again, I'm honestly curious and am not trying to come off as a prick.

Because he can. Why do PC builders build their own PC instead of buying one from Dell or apple? 

Sudo make me a sandwich 

Link to comment
https://linustechtips.com/topic/964135-feedback-on-game-engine/#findComment-11684383
Share on other sites

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

×