Jump to content

  • Log In with Google      Sign In   
  • Create Account


pinebanana

Member Since 28 Oct 2012
Offline Last Active Mar 08 2014 06:52 PM

Topics I've Started

Not sure whether to do CS or Engineering (Double Degree)

25 September 2013 - 04:55 AM

I'm not whether I should do a Computer Science (Advanced) course (http://www.adelaide.edu.au/degree-finder/bcmsa_bcmpscadv.html), or Bachelor of Engineering (Computer Systems) with Bachelor of Mathematical and Computer Sciences (http://www.adelaide.edu.au/degree-finder/2014/bedm4_becomsysd4.html) and Bachelor of Engineering (Electrical and Electronic) with Bachelor of Mathematical and Computer Sciences (http://www.adelaide.edu.au/degree-finder/2014/bedm5_beelec&ed4.html).

 

The advanced computer science course differs from the regular CS course by: "You have one course in semester 2 year1 called Grand Challenges, only for advance students, which looks at bid data issues and you do your first project

In second and third year you have  a 6-unit project course in which you continue to do more  project based/research.  The rest of the courses are the same that the standard one.  
We have offered the advance stream for  two years and the feedback from the first students doing the project courses is very positive, they are happy then can choose a topic and have room to explore it in depth, with supervision from a lecturer."
 
Apparently if I chose one of the double degrees it would have the same "respect" as if I took the Computer Science course, as in when I'm applying for a job? Is this true?
 
The reason I'm quite confused on what to choose is because the Advanced course requires 95 ATAR (ATAR is basically a score you get depending on how well you did in school, 99.99 being highest). The double degrees only require 80-85 ATAR. Therefore if I set the double degrees as a first preference, there's no point in me putting the CS advanced course as a lower preference, as I won't get into it anyway. At the moment the CS degree is at the top of my preferences, but I'm considering in removing it entirely and just leaving the double degrees. I'm not sure, though, as I don't know whether it'd be worth an extra 2 years of study (CS is 3 years and the double's are 5 years).
 
I'm interested in programming, but it seems I'd learn more from the Double Degree. Although, I'm not sure that I'd be interested in the Engineering aspect. I am interested in Maths and Physics, but I don't know. This is quite infuriating. Any recommendations would be very appreciated.

CS Degree - Is it worth it?

07 September 2013 - 03:41 AM

I'm curious to know if I should spend 3 years of my life to get a CS degree. I'm 17 years old, turning 18, in my last year of high school (grade 12) and willing to apply to a university. I already know how to program, in various languages (here's my GitHub and BitBucket if you want to look at some of my code [I haven't finished/update some projects as of yet]). Obviously, I don't know everything about programming*, but I would say I know quite a lot. Would I be "twiddling my thumbs" for the first couple of years whilst doing a CS degree (i.e. be bored, not learn anything new)?

 

I'm considering between choosing CS/CS(Advanced), Bachelor of Engineering (Electrical and Electronic) with Bachelor of Mathematical and Computer Sciences, and Bachelor of Engineering (Computer Systems) with Bachelor of Mathematical and Computer Sciences. I'm not sure if the last two degrees would have all the content as a CS degree (it's a double degree; yet it has three degrees(?)).

 

Can I get opinions on why getting a CS degree would be beneficial to me? The only reasons I can think of is: (1) More knowledge, (2) Good environment for learning at uni (topics I'm unsure/inexperienced in or don't know about*) and (3) Looks good on a resume. Also, could I get a job (programming related) whilst studying for my CS degree?

*Here's the topics I do not currently know (there is more than likely more, but here's the main ones I think I should learn and seem interesting):

  • Assembly programming

  • Operating Systems

Here's the languages I know:

  • C

  • C++

  • C#

  • Java

  • JavaScript

  • Anything really C-like

  • VB (and TI-Basic)

  • Had some little experience with Lua

  • HTML/CSS (Not sure if these really count, but I still know them)


How to abstract OpenGL or DirectX specific things from classes specific to rendering

10 March 2013 - 01:12 AM

I'm not sure if this has been posted before.

 

I'm just not sure how I should abstract OpenGL or DirectX specific things from classes specific to rendering. Such as shaders, texture objects, vertex buffer objects, etc.

 

For example:

 

Let's say there is a Texture2D class, that is used to refer to textures stored on the GPU. The problem is: storing the specific GLuint (or whatever the alternative for DX is) within the Texture2D object directly, which would make my code very dependent to OpenGL. I've thought of a couple alternatives:

 

Option 1:

 

 

Store an unsigned integer inside the Texture object, (not actually the GLuint), which will resemble an index of the actual OpenGL/DX specific data. Which will most likely be present inside a TextureLoader class. Where the Renderer will have a TextureLoader, and may be accessed through a getter.

 

Here is what I mean:

 

Texture2d (this is a basic data structure)
     - width/height
     - index
Texture2dLoader (abstract)
     - loadTexture(const Image&) : Texture2d
     - destroyTexture(Texture& texture)
OglTexture2dLoader : TextureLoader
    - loadTexture(const Image&) : Texture2d // override
    - destroyTexture(Texture& texture) // override
    - vector<GLuint> textures // dynamic array, appended to when loading texture 

 

Here are the pros/cons that I've thought of from this design.

 

Pros:

  • Simple, non dependant on OpenGL or DirectX
  • Easy to make another implementation

Cons:

  • Requires manual deletion, therefore:
  • If Texture object goes out of scope, there will be no way of deleting texture manually

 

Option 2:

 

Make an abstract TextureHandler class, which will have specific OpenGL/DX in the derived class

 

Texture2dHandler (abstract)

     - virtual destructor

Texture2d (this is a basic data structure)

     - width/height

     - handler : unique_ptr<Texture2dHandler>

OglTexture2dHandler : TextureHandler

     - GLuint id

     - (destructor)

Texture2dLoader (abstract)

     - loadTexture(const Image&) : Texture2d

     - destroyTexture(Texture& texture)

OglTexture2dLoader : TextureLoader

    - loadTexture(const Image&) : Texture2d // override

    - destroyTexture(Texture& texture) // override

 

Pros:

  • Allows for RAII

Cons:

  • Handler requires to be allocated on the heap

 

The same issue is also applied to shaders, buffer objects (such as VBOs), and whatever else, and therefore this will be present all over my code. Does anyone have personal experience with this? What option should I go for?

 

This is really bugging my mind. Thanks for reading.


Losing interest in game development...

13 January 2013 - 03:17 AM

This is more of a rant, but not a rant (if you know what I mean?). Lately, well not that lately, I've been gradually losing interest in game development (specifically programming; I can't do art... so yeah), more and more. I don't know what it is! It's very frustrating.

 

Perhaps, it's the amount of work that I do that turns out to be quite useless and I have to re-do it all over again. I just keep failing. I just want to know *everything* about game-development, I want to understand how it's done from the ground up. Yet I can't do it! I mean, I can, but I always get distracted, or annoyed at myself because I just can't think of an appropriate design in order to achieve a task. For example, I'm making my own very simple renderer for my game, built in C++. I know I'm leaving half of the stuff out that I could put it in and that annoys me, e.g. texture options (whether to clamp or repeat the texture) or abstracting OpenGL specific stuff (such as Texture classes w/o GLuint directly in them, more data oriented of a design). I REALISE that I could use another engine, like Ogre3D, or whatever, but whenever I do try to use it, I just hate the way that it enforces you to do things their way (plus I find it somewhat awkward programming with someone else's code, unless I've studied it and frameworks like Ogre3d takes awhile to study). But anyway, my game is 2D so I thought why not use OpenGL by itself (probably going to use legacy code because I haven't really learnt about shaders). Another thing, I've made my own entity system, which I know I can really improve but it just gets all out of hand when I try to.

 

Now, I'm only 17 (last year of high-school this year), didn't turn that too long ago, but yet I want to make money via programming, and the only way that I can think of is: 1. Game Programming and releasing it on the Android/iOS app store (or selling it via a website, 2. being a freelancer programmer (yet most of the skills/experience I don't really have), or 3. Being the next Bill Gates (haha, I'm hilarious). I also want to be somewhat known, and I also want to know a lot, sometimes I just don't have the motivation to learn about new stuff, either that or I'm busy programming. 

 

Hopefully I'll be going to University after high-school, I want to get things done before then though, but before then I want to COMPLETE my projects that I've started, which is hard. I've made a list of what projects I'm wanting to make, but I'm not entirely sure if I'll ever them all done. I'm terrible at planning (the wanting to do everything from scratch when it comes to gamedev with C++ doesn't really help me with getting things done quicker). I've been working on my game for quite some time now, barley got anywhere near completed. (I've got a window open)...

 

Has anyone ever felt some-what of what I'm feeling? Does anyone have advice for me? Should I be in such a rush to get things done at my my age? Or Should I just give up, and move onto something else? Such as: programming applications with Qt, web programming, or perhaps security penetration testing (i.e. ethical hacking), or whatever else. I'm just not sure what I want to do when I'm actually a programmer, I love low-level stuff, but I'm not sure.


C++ Entity System

15 December 2012 - 12:27 AM

After many hours of confusion on how I should implement my Entity System; it has finally been completed (at like 4 in the morning) Posted Image. This framework is based of the Java Entity System, Artemis, however it's a bit different with the way it is implemented, but you will find similarities. Unfortunately it is not entirely complete, I believe the only thing left to do is the SceneDirector, however, that's not really a required class in the framework, it's more of an add-on to help you manage Scene* objects.

*If you are familiar with the Artemis framework, a Scene is a World.

Features:
- Unlimited component-types
- Fast retrieval of components
- Creation of components, entity-systems and entity-managers through a string

If you are going to try this framework out, please submit ANY bugs and feel free to add suggestions. I have put issues in my BitBucket repo available for the public, so please submit bugs/suggestions there. There are no known bugs at the moment, I have resolved them.

NOTE:
If you are unsure what an Entity System is, I recommend reading this basic tutorial and preferably a blog, such as this one, before reading the tutorial, which describes what one is.

EDIT: Moved to tutorial to the public wiki on BitBucket, here.

PARTNERS