Giter Site home page Giter Site logo

game_opengl's Introduction

Vikings: Odin's wrath

Build the game:


make

Run the game:


./game

Build the tests:


make test

run the tests:


./test

Check opengl version

glxinfo | grep "OpenGL version"

Ubuntu: OpenGL version string: 4.6.0 NVIDIA 470.103.01

Scripting

Using python script (totally forgot how)

Open commandline and go to directory

cd ./Documents/projects/game_opengl/scripts

Open game terminal

python3 app.py

Add and run function

  1. Edit game_api.py -> add another function
  2. Edit py.cpp/py.h -> add another function
  3. Creates console.py with new arguments. This will be read by game engine when clicking 0

todo list:

Animations -> make sure the looped animations are looped (checking if next anim id is the same as current one? skip first frame if so?)

Zooming in -> analyse how to zoom in on specific point

Unit tests

  • Done: anims, camera, collisions, ecs, items, utils, scenes, models
  • Dependency: Travel, map, navmesh, pathfinding, door collisions tests will wait till I have new maps pipeline as there is no point now

Map generation

  • Fired up the world machine on linux and it looks to be working!
  • lets explore world machine for next couple of weeks

Interactions history:

  • encounters: https://www.youtube.com/watch?v=HZft_U4Fc-U&t=1s&ab_channel=GDC
  • bitset of encounter and events flags. Encounters instead of quests
  • quest => meet someone, go somwhere, get something, go back, get reward (witcher: there is a wolg in the woods, you go there, there is a wolf, get the wolf heads, get it back and reward)

game design questions: (narrative)

  • why is this peasant not doing anything about the wolf?

  • if I do nothing why doesnt the peasant care

  • why are woods empty if I go there first before meeting the peasant (activating the quest)

  • why does no one else in the worlds care about the wolf in the woods?

  • encounter -> You can know about the wolf or dont know about the wolf, but you can meet the wolf anyway

encounter structure:

  • go to peasant house -> he tells you about the wolf ( you could see it before, already killed it, give the head) OR
  • go to woods, meet the wolf and kill it or run away OR revisit the peasant saying I still havent killed it ignored the wolf again, came back and pesant is gone, wolf is gone, there is peasant hat in the woods

-> add peasant impatience level (if gets high then he goes and tries himself)

"ready myself" has to stay as an option always as we have to give player a way to pause the discussion -> defensive logic

Every scene written to cope with the game, regardless of state Preconditions -> evry line/action gated by its preconditions fallback: ready myself

  1. state modelling
  • state machines of everything
  • wolf: know about the wolf, wolf seen, wolf killed, wolf head cut off
  • peasant: met, , told of wolf, grateful
  • peasant impatient: impatient, gone, dead

each state implies previous ones

How to implement state machines

StateMachine { int last step enum? }

State machines allow us to have emerging stories: peasant told me about the wolf, I did nothing, pesant got impatient, went to kill a wolf, I later found his body, killed the wolf in revenge

Unexpacted benefits:

Heightmaps/terrain:

Rendering

  • split quads per type of render (static camera, dynamic camera, clicked, Color, Texture) -> provide multiple draw calls but different shaders to remove If Else from shader code

Sounds/Music

When I have longer soundtrack, will improve the functionality of sounds module. Things to do:

  • volume setting
  • stopping the sound
  • starting the sound
  • learn more about thread management

Credits:

Fonts

Joel Carrouche: https://www.fontspace.com/norse-font-f21080 www.joelcarrouche.com. Donate if used

font string: ABCDEFGHIJKLMNOPRSTUWVXYZ0123456789!@#$%&*(){}[]^:;”’<>,./?|-_=+

software

https://github.com/adamstark/AudioFile/blob/master/LICENSE

logo colors:

// background #191717 - rgb(25, 23, 23) - 0.098, 0,09, 0.09 // color #B3ACAC - rgb(179, 172, 172) // font Medieval Sharp

Betatesterzy

  • Michal Klos "mogę być betatesterem" "ale potem chcę żeby gdzieś na jakimś kamieniu znalazł się mój nick 😃"

nazwy

Fiords of blood Axe and oar

Memory check

https://valgrind.org/docs/manual/quick-start.html

Music scenarios

https://docs.google.com/document/d/1AhmMyDQHfmy1Cq3JuBcPSzUPpqGaNg9okGu3JyKvxtY/edit

game_opengl's People

Contributors

patrickchodowski avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.