OpenGL代写 - GAME2012 – 3D Graphics Programming

Start Project

You can use any starting project that we have provided for you in this course and
this project covers every topic we’ve delivered - including those to come in later
weeks such as lighting - so plan accordingly. Don’t leave until the final week.

Project Goal

The goal of this project is do design and render a hedge maze in front of a simple
castle façade. You can refer to the sample design images. There is also a bonus
with some simple mechanics and progression.

COURSE CODE: GAME2012 – 3D Graphics Programming Page 2 of 5
Design Grid (1 mark - mandatory)

You have been provided a large grid image on which to design your project.
Using any image editing software (free or otherwise), you will be provided to
“draw” out your hedge walls and all geometry for the castle in top-down format.

You MUST submit this image with your project or you will get 0.

Also, your final inplementation must not deviate too much from this design. This
is the point of having a design.

Hedge Maze (5 marks)

One of the main parts of this project is to render a rectangular hedge maze
enclosed by three simple castle walls and one castle wall with a bit of geometric
variety and the gate. There should be a set of stairs leading up to the gate which
is inset into this main wall via a gatehouse.

You will have a lot of freedom in your design but refer to some provided concept
images and you can always ask for clarity.

Hedge Layout

The tops of your hedges should be roughly halfway down the castle walls, and
the castle walls themselves should be tall. Use your judgement. For overall scale,
consider 1 unit being 1 meter. The mandatory criteria for the hedge maze are:
• You can use simple rectangular wall segments , meaning object for a
single wall segment - or you can have complex Ls or Hs or whatever as
one object if you like. But you CAN just piece walls together from one
single rectangular segment (2 marks)
• For hedge thickness, don’t go any thicker than half a meter but don’t make
them too thin - use your judgement
• For the texture, just use any solid leafy or vegetation texture (1 mark)
• The ground of the hedge maze should be any dirt texture (1 mark)
• Your maze should have a rectangular center “room” with two exits and
should have any stone brick texture
o This means you can have a slightly raised floor - but just another
rectangle with this stone texture on it (1 mark)
o This room can be empty but there will be details added for the

Castle Walls (6 marks)

You need to enclose your hedge maze with four castle walls. Three walls can be
simple rectangles with towers in the corners, but one wall is designated the
‘main’ wall and must be more elaborate with a gate. The mandatory criteria for
the castle walls are:

COURSE CODE: GAME2012 – 3D Graphics Programming Page 3 of 5
• The tops of the walls must have battlements which consist of two smaller
walls (parapets) with merlons and crenels (see concepts) (2 marks)
o It’s all just rectangles though but you can do a full parapet with
indexed draws
o For thickness, don’t worry as the ‘player’ wouldn’t be able to go
beyond them, but just make them thick enough to accommodate
the battlement, so maybe around 2m thick total
o Use your judgement
o Walls should have a stone texture that is tileable (1 mark)
• The four towers in the corners of the walls must be cylindrical in shape
with at least 12 sides and be capped with a cone with as many sides as
the tower. The base of the cone should be slightly wider in diameter than
the tower (1 mark)
• The main wall should have more details than the other walls and should
have a gatehouse in the center (2 marks)
o The gatehouse should have two more tower-like shapes that flank a
more shallow, flat section that contains the gate. The gatehouse
towers don’t have to be 12+ sided cylinders and could be
rectangular or something interesting like octagonal
o A lot of castles have an arched gate, but in the interest of time, you
don’t need an archway but I want a nice wooden texture for the
castle gate - which can just be another rectangle
o There will be a few marks for aesthetics but it’s really just marks for
using a variety of shapes
o There should be stone steps leading up to the gatehouse so that
the gate is not at ground level. These stone steps should only be 1-
2m high and be flanked by short walls that angle up with the stairs
▪ Again, no collision is required so as long as we can move
and angle the camera (as stated below) it’s fine

Lights, Camera, Action! (5 marks)

You need to deploy a few light sources in your castle but you don’t need physical
lamp posts or lanterns or anything like that in the interest of time. It could
definitely help for aesthetics though. You only need points lights and ambient
light and you don’t need different colors unless you want them. (3 marks)

Make sure that your camera is in perspective mode and can be controlled as a
first-person camera. We’ve set this up for you pretty much with examples, but
just for clarification: (2 marks)
• A and D would strafe left and right
• W and S would move forward and backwards along the forward vector
o You can choose to keep the camera on the ground or if rotated
upwards, allow it to move diagonally up - it’s up to you
• R and F should still move up and down (the world Y) just for debug
purposes so we can see an overview of your world - this is mandatory!

COURSE CODE: GAME2012 – 3D Graphics Programming Page 4 of 5
• Mouse movement will rotate the camera look at - you can use our mouse
click and rotate example

Bonus mechanics (5 bonus marks)

For a 5-mark bonus, you’ll need to create a progression system to get out of the
maze. The exact implementation is up to you, but it must meet these criteria:
• The maze has an exit gate and you technically don’t have to have collision
but if the camera gets too close to the gate, just output to the console that
you cannot exit the maze - even if the camera is physically able to
o This is jus a distance check you’ll use throughout this bonus
• There will be a special ‘item’ located somewhere in the maze
o This can just be a colored sphere or green crystal/plumbob
o The camera must get close enough to ‘pick up’ this item and it can
just be a distance mechanic, but once the camera is close enough,
make the object disappear and send a message to the console so
the user knows to progress
o Note: you really only need the console if you do the bonus
• Once collected, the ‘player’ must bring the item to the center of the maze
where there should be some short cylinder to serve as a receptacle for the
item. You only need this pillar if you do the bonus
o Once close to this pillar, the item should appear to hover over it
and bob up and down
• Once these two triggers are satisfied, now the camera can exit through the
maze exit door without the warning message appearing

Presentation or video (0 marks but mandatory)

You need to either make a 3-5 minute video showing all aspects of your
submission or present for roughly 3-5 minutes during your lab section. Only one
group member needs to present. If you do neither, you get 0%.

COURSE CODE: GAME2012 – 3D Graphics Programming Page 5 of 5
Project Weight: 20% of course grade

Task Possible
Design Grid 1 *Mandatory. You submitted your design grid with layout
Hedge Maze 5 You created the hedge maze properly
Castle Walls 6 You created the enclosing castle walls properly
Lights & Camera 5 You created the lights and camera properly
Aesthetics/Variety 3 You have a variety of shapes and your castle/maze has
realistic proportions
Bonus 5 You added the bonus mechanics properly
Video/Presentation * *Mandatory video or in-lab presentation
Total: 20

Submission Details:

• If have a hidden .vs directory, delete the .db file and any AutoPCH folders
• Submit through Final Project link ONLY
• If working in pairs, BOTH members must submit the same thing
• Naming convention: (or .7z or .rar)

or (or .7z or .rar)

• You didn’t include your completed design grid: 0% for submission
• You don’t have a video or didn’t present in the lab: 0% for submission
• You submit only a .sln file: 0% for submission
• You only have a template that we provided and no extra code: 0% for
• You coded it in any language other than C++ with OpenGL (with perhaps
SDL too): 0% for submission
• You still have a hidden .vs path in your submission: 50% off submission
• Wrong naming convention: 50% off submission
o So make sure you take 10 seconds and rename it!