• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
  • entries
  • comments
  • views

About this blog

My Random Ramblings

Entries in this blog

Triangle is where the second day is finished.

Today after I wrote my yesterdays report I continued programming and I created View class which constructor opens glfw window and I tried to pass the three templates I created yesterday as parameters in to the View class, but I found it pretty hard, because I had to reinterpret_cast the template class pointers to some valid pointer type. Well I almost got killed at stackoverflow for asking help solving problem I had before i realized I can just cast them to another type.

After I got it working I went for a cigarette and realized that I had taken control of the main loop which was something I did not want to do, but cowboy programming on the fly is somewhat dangerous. So I removed all of the code. Wrote new template structure vertex with the coordinates as members and two vertex structure pointers as members.

Then I wrote template class to manage this Screw::Vertex structure and called the class Screw::Vertices. Now I can push as many vertices to the class as I want and my computer can handle. I can also get the vertices back as array for GL_ARRAY_BUFFERS.

I copied the Vertices\Vertex templates to another file used search and replace and I had Colors template class and Color template structure.

So I started writing the View class again, but this time I left the main loop to main(). Somehow I started writing c++ wrapper for the OpenGL functions I used. You can see me drawing triangle on the image and that is as far as I currently am. C++ code lines currently at 475 if you are interested how it took me more than a 15 minutes to draw that damn triangle. :P

Second day and two problems.

I got a problem passing template class as regular class method parameter and using the template class as vector type. I went into stackoverflow and ask help, but their solutions were not what I wanted, but I realized myself what I wanted and posted it as solution to my post. Soon I got almost killed for casting class pointer to char pointer. Well after I redid basically everything I had problems getting openGL to actually draw on the window I created. I had every damn function call correctly, but I was not drawing on the visible screen, which took some time to notice.

What tomorrow?

Tomorrow I am going to create Github repository for ScrewGui and start writing some 2D element classes which use the Vertices and Colors templates.
So what is this?

I am going to start writing daily reports about what I do with ScrewGUI my new C++ project. I forgot yesterday to write the first report, but I will write it now before continuing programming. You will get today's report later today.

What I programmed yesterday?

I Wrote three templates which were Screw::Vertex, Screw::Line and Screw::Triangle.

First I wrote Screw::Vertex templates constructor to take 4 parameters x,y,z,w which are the 3 dimensional coordinates for vertex. Then I wrote constructor which does not take the parameters, but sets the coordinates to zero.

I also wrote functions to get and set the vertex data called:

  • T * GetVertexData()
  • void SetVertexData(T x, T y, T z, T w)

    The GetVertexData function returns array which contains the four coordinates and the SetVertexData takes them as parameters and sets the values to the templates private members.

    Then I programmed the Screw::Line template constructor which took two Screw::Vertex objects as parameter and another constructor which did not take these Screw::Vertex objects as parameter, but created two new empty Screw::Vertex objects. I wrote the destructor to delete the created Screw::Vertex objects, but not the ones which were passed to the Screw::Line object.

    I also wrote the get and set public member functions:

    • T * GetVertexData()
    • void SetVertexData(T xOne, T yOne, T zOne, T wOne, T xTwo, T yTwo, T zTwo, T wTwo)

      The inner functionality was little bit different from Screw::Vertex implementation, because I did not use private coordinate members in Screw::Line, but used two Screw::Vertex objects as the private members. So I wrote the implementation so that Screw::Line get and set called Screw::Vertex Get and Set functions.

      Screw::Triangle was pretty much the same as Screw::Line, but as Triangle has three points I needed three Screw::Vertex objects. I programmed the constructor which took three Screw::Vertex objects as parameter and one which created three new empty Screw::Vertex objects and the destructor which deleted these created objects.

      As with the previous templates I wrote the get and set functions:

      • T * GetVertexData()
      • void SetVertexData(T VertexID, T x, T y, T z, T w)

        I opted to use T VertexID because having twelve parameters was kind of long and I did not want to pass array into the function, because that would require the library user to create the array when using Screw::Triangle template.

        What problems I ran into.

        When I was programming Screw::Triangles Set function I realized that twelve parameters was bit too much and opted to use VertexID and force the user of the library to call the SetVertexData function three times to set every vertex coordinates. Now I am thinking if I should apply the same functionality in Screw::Line and most likely I will.

        What I am going to do today.

        I am going to write template View which will construct glfw window and draw the given objects on screen.
So I hate deadlines, but why?

  1. Forces developer to work under pressure as fast as they can.
  2. The word basically means death of the project if the project is not finished when the deadline time is passed.
  3. It is used as a way to see if workers actually do their work with sub deadlines.

Basically I think that forcing someone to work under pressure as fast as they can hurts the project and when the time estimate is not enough. When deadlines are missed even some good developers are fired if they seem to be the cause of the missing deadline and managers can easily push the fault to the developers instead of himself. When developer works as fast as they can they might miss key things and cause bugs in the project which will lead to more delays. Some people just can no work under pressure which will make them uncomfortable and they most likely will resign from the work and find easier work like teaching.

Deadline means basically death of the project if the deadline is passed without completing the project but usually the deadline does not kill the project because more time is assigned to the project if there is money to keep paying the employees.

Something I hate is that if employee who is actually good fails to meet the deadline and as meeting the deadline is basically used as proof of working instead of scratching ass. The employee might get fired even though he might have been working as fast as he could, because some manager decided to give short deadline or some unexpected problem arrived.

Deadlines should be gone at least from the world of programming, because estimating the time required for completing software project is hard, because software projects are complex. Software will be finished anyway at some stage if the developers are given enough time and to create this time money is required for paying employees.

If you run out of money you have either employed too many people or you under estimated the size of the project. So if you do not want to let the project die because you ran out of money you need to find it from somewhere else to continue the project or kill the project and become a failure, the employees most likely will be able to find new jobs anyway.

If you do realize that you are running out of cash, you should start dropping features to make size of the project smaller or find existing solutions to the features to implement them faster instead of making your employees work faster.

God did not create the world in 6 days because he set a deadline for himself. He did it because he is god, but he could also have taken 12 weeks.
Sign in to follow this  
Followers 0