Code Monkey home page Code Monkey logo

dino3d's Introduction

🦖 T-Rex Run 3D

Play the game here: http://priler.github.io/dino3d/low.html
Alt. version with best quality settings for high-end PCs: http://priler.github.io/dino3d/

Description

T-Rex Run 3D is a ThreeJS WebGL game made as an experiment.
All the graphics was hand crafted with Magica Voxel software, so that the overall feel and look of the game will be the same as original 2D game.

The code has NOT been polished and is provided "as is". There are a lot of code that are redundant and there are tons of improvements that can be made.

Screenshot

T-Rex Run 3D

ToDo

https://trello.com/b/Pt4FSqOi/t-rex-run-3d

Change history

  • Update 1

    • New interface
    • Infinity jumping while holding jump button
    • Jumping buttons now is: Space, Arrow Up, W
    • Bend down buttons now is: Arrow Down, S, Ctrl
    • Restart on game end
    • Fixed bug when a player could switch active tab and collisions ingame was not working
    • Fixed bug with not fully loaded textures before game start
    • Fixed bug when high scores continued to count even after game end
    • Fixed hitbox
    • Fixed ability to jump from bend down position
    • Fixed disappearing ground textures
    • Other minor bug fixes
  • Update 2

    • Voxel landscape added
    • Palm trees has been removed, instead there is scorpions, skulls, etc
    • UI is now fully in pixel art style
    • Load screen added
    • New dino reaction on collisions
    • W & S keys was removed
    • Nature Manager & Enemy Manager was fully rewritten for better performance and new feautures
    • "Black screens" bug fixed
    • High jumps bug fixed
    • Scores display fixed
    • Moving objects stuttering fixed (never use .splice() again :3)

Credits

https://threejs.org/ - WebGL 3D Library
https://ephtracy.github.io/ - Free lightweight 8-bit voxel art editor
https://github.com/daishihmr/vox.js/ - MagicaVoxel *.vox file parser and Three.js mesh builder
https://github.com/goldfire/howler.js/ - Audio library
https://github.com/creativelifeform/three-nebula - WebGL based particle system engine for three.js
https://github.com/addyosmani/visibly.js/ - Page Visibility API shim

Author

(C) 2020 Abraham Tugalov. http://howdyho.net

Contributors

dino3d's People

Contributors

priler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dino3d's Issues

Проблемы связанные со сменой дня и ночи

  1. Если умереть ночью и рестартнуть игру, то игра начнётся с ночи.
    Screenshot_5
  2. Ночью что-то с текстурами странное творится.
    Screenshot_6
  3. Сделай разнообразие типо день->закат->ночь можно ещё рассвет т.е жёлтый->красный->черный(тёмно-серый или синий) +хз розовый.

Score-counter (UI)

Поменять у #score-counter top на bottom (перемести вниз)
На большой скорости очень мешает, дорога как раз идет в сторону счетчика и за него цепляется глаз.

Multiplayer: Websockets || RealtimeDB

Is your feature request related to a problem? Please describe.
No, it is not.

Describe the solution you'd like
Multiplayer.

Additional context
Using Firebase Realtime DB, or Websockets.
P.S. I can help.

Предложение к динозаврику

Ночь в игре:
1)Модель птеродактиля меняется на модель летучий мыши (серый цвет,красные глаза)
2)В качестве освещения можно добавить каких либо мух(светлячков),на динозавре изменять цвет глаз и когтей(желтый,красный)
3) В воде светящиеся рыбы
4)На деревьях какие-нибудь светящиеся "семена"
5)Темно-синее небо
6)На задний план можно добавить луну и звезды
Я думаю что нужно сделать темную атмосферу и добавить немного маленьких источников света,главный источник сета луна со звездами.

bug report

  • Постоянно отображается надпись игра закончена и кнопка повтора
    image
    image

  • Я до конца не разобрался, но иногда когда еще не стартовал игру, переключил вкладку, вернулся назад и запустил игру запускается только счетчик без самого дино
    image


UPD

Браузер: Google Chrome

ОС: Windows 10


image

Предлагаю изменить анимацию бега динозаврика

при беге в начале всё хорошо, но когда доходишь до высокой скорости динозаврик не то что бегает он просто дергается вверх и вниз, это можно изменить если сделать голову не подвижной, то есть анимацию ног не менять, а просто сделать чтобы голова не ходила на один пиксель вверх и вниз.

Переработать ночное время

Привет
Плохо видно птеродактелей и кактусы в ночное время надо выкручивать яркость
Предлагаю сделать их глаза светящимися красным
и реализовать восход луны типа ночного освещения (можно звездочки прикрутить для красоты)

Баг с приседанием

Баг с приседанием. Зажимаем стрелку вниз, умираем, сворачиваем и назад открываем браузер и теперь у нас динозавр приседает сам по себе пока мы не прыгнем.

Шахтерская каска для дино.

Предлогаю добавить динозаврику шахтерскую каску с фонариком, чтобы ночью он включался. Будет не настолько темно.

Странное поведение кадров

Кадры после отрисовки имеют какую-то паузу прежде чем отрисовывать новые, что влечёт к Очень низкому fps,
image
при этом нагрузка на процессор не выше 5%
всё на ноутбуке с hd graphics видеокартой (браузер на дискретке запускаться отказывается)

Прыжок

  1. Сделай так чтобы динозаврик если кноппка вниз была нажата в прыжке пригибался только когда коснётся земли потому что как-то так не смотрится.
    Screenshot_5(про проблему на картинке напишу чуть позже)
  2. Мне кажется что неплохо было бы при нажатии на кнопку вниз во время прыжка ускорять падение, немного, но ускорять.
  3. В оригинале дино постоянно ускоряется и соответственно прыжок становится длиннее, я понимаю что довольно сложно будет за счёт этого спавнить новых врагов, но всё же так куда лучше будет.

Небольшой багоотчет + Идеи

Привет хауди! В общем поиграл в динозаврика и вышло неплохо, ты молодец! Но вот нашел пару багов... Первый это проблема смена дня и ночи. При переходе в ночной режим и смерти в нем при перезапуске игры все еще будет ночь(этот баг уже описан на сайте), но из-за этого появился еще одна криповая фигня... Если так и начать играть в ночном моде, то при повторном достижении необходимого кол-ва очков для смены времени суток ночь станет намного темнее (Скрин прилагается). Я неплохо так пересрал когда впервые это заметил XD.
12 Остальные баги которые нашел уже оказались изложены на сайте. Поэтому я решил дать тебе пару идей насчет совершенствования игры.. Ну для начала нужно действительно добавить небо. Луна, звезды, солнце, облака. Второе, на мой взгляд, очень необходимое улучшение это возможность поставить игру на паузу. Иногда действительно бывает очень полезно. Ну и еще одно нововведение, которое я хотел бы увидеть в игре - это небольшое расширение геймплея. Пусть это и будет отходить от канонов оригинального динозаврика, но в том случае разработчикам просто не позволяла это сделать плоскость. Я говорю о движениях тирекса влево и вправо. Пусть препятствия можно будет не только перепрыгнуть, но и обойти с одной из сторон. (Типа чтобы вынудить игрока прыгнуть можно сделать ряд из кактусов во всю ширину дорожки, а так одиночные кактусы можно будет обойти.) Чтобы было проще управлять в таком случае, пусть после обхода препятствия дино возвращается ровно на середину дорожки автоматически. В общем то это все. Спасибо за такую замечательную игру и надеюсь ты примешь все что выше к сведению.)

Поддержка игры для пк

Скоро ли будет поддержка игры для ПК?
Нужно релизнуть динозаврика на howdyho.net .
То есть расположить .exe файл на данном хостинге для скачивания .
Howdyho.net написан на PHP?

Здравствуйте Хауди Хо! Баги и совет

Во время игры встретился с парочкой забавных багов.

Первый заключался в том что после смерти во время ночного времени и после рестарта у меня началась вакханалия, всё было очень тёмным и модели начали покрываться радужными полосками. И после окончания ночи темнота полностью не ушла, а осталось такое ощущение сумерок. (Скрин сделать не успел.)

Второй баг был очень неожиданным и я даже немного испугался. Во время игры один из птеродактилей летел со скоростью пули и при этом обогнал и даже пролетел сквозь модельку другого птеродактиля. Ещё иногда кактусы могут пропадать сами по себе.

Также у меня есть один совет, можно ли добавить какое нибудь оболочки пыли или разлом в земле после приземления динозаврика.

PWA

Is your feature request related to a problem? Please describe.
No, it's not.

Describe the solution you'd like
Use PWA for caching, and make it more web application like not web page like.

Describe alternatives you've considered
Add manifest(-s), service workers.

Additional context
I can help with this.

Помощь по принятию багрепортов

Привет) Могу помочь тебе с баг репортами. У меня есть готовый телеграм бот. Могу предоставить к нему доступ на правах админа. Если предложение заинтересовало, ответь, не игнорь)
P.S @fearsd в телеграм

Refactoring

Предлагаю провести маленький code refactoring:

  1. Названия файлов, в которых находятся классы, (audio_manager.js ...) писать с большой буквы и в camel case. (AudoManager.js)
  2. Переименовать interface_manager.js в GUIManager.js (и класс в нем).
  3. Использовать Linter.
  4. Документировать код.

Это мой взгляд на code style. Очевидно, вы с ним не согласитесь, и этого даже нет в каких-либо стандартах.

Создай пасхалки и скины и таблицу . Это будет круто !

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Телеграм-бот

Привет) Я тут поменял логику работы бота, взглянь)
https://github.com/Rifat-Fazlutdinov/dino_bot
Telegram - @fearsd
И кстати, где тебе можно написать, чтобы я был уверен, что ты прочитаешь сообщение?
Я просто могу расширить возможности бота, а ты о них можешь и не знать)

При столкновении с птеродактилем ничего не происходит

  1. Начинаем игру.
  2. Добегаем до птеродактиля и ничего не нажимаем

ФР: Ничего не происходит, рекорд останавливается, есть возможность прыжка.
ОР: Game over, игра начинается заново, звук проигрыша.

Я как адекватный, начинающий QA-инженер пишу в Issue

Меню паузы

Хауди, сделай пожалуйста меню паузы. Я понимаю, что это буден не как в оригинале, но как по мне, это функция будет очень полезна.
Заранее спасибо!

Игра не перезагружается после смерти

Возможный вариант починки -> перезапустить игру по нажатию пробела
или так

endgame() {
    if (isPlaying) setTimeout(() => location.reload(), 2000);
...
}

а так же, добавь поддержку стрелок UP_ARROW, DOWN_ARROW и W A S D

Cборник багов #1 Бессмертие/Откл. музыки

Когда немного играешь и после переходишь на другую вкладку динозаврик бежит бессмертно, потом можно спокойно вернуться к вкладке с игрой и играть дальше.

Фоновая музыка выключается при достижении 6к очков.
P.S.
Фоновая музыка начинается когда нажимаешь пробел, а не когда проходят все манипуляции с прогрузом

TypeScript

Is your feature request related to a problem? Please describe.
NO

Describe the solution you'd like
Migrate Project to TypeScript language.

Additional context
I can help with this.

Небольшой новый баг

Привет! Нашел еще баг! (Мой предыдущий запрос №25) В общем если дойти до счета, когда будут птеродактили и умереть, то при начале новой игры они уже будут появляться.. Вроде все-таки баг)
Снимок

Предлогаю, чтобы по похождении отметки например в 4000 тысячи очков, дино высовывал язык, типа устал.

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Баги - предложения

  1. Если возможно, сделать регулировку звука.
  2. Маленькое облачко пыли при приземлении динозаврика после прыжка.
  3. Было бы приятно смотреть ночью на объекты которые светятся (костры и т.п.)
  4. Убрать "Баннихоп" при зажатии прыжка динозавр без остановки прыгает.
  5. После проигрыша, при нажатии прыжка игра перезапускается.
  6. Летучие мыши ночью это круто. (со светящимися глазами).
  7. При нажатии правой кнопкой мыши по вкладке (в момент прыжка) динозавр сам начинал прыгать. Возможно это со стороны браузера, а не игры.

Приложение ВК уже работает.

Извени но я создал приложение которое работает от https://priler.github.io/dino3d/low.html и от https://priler.github.io/dino3d/

🖥 Для мощных компьютеров - https://vk.com/app7314758
💻 Для слабых компьютеров и ноутбуков - https://vk.com/app7313300


Все скриншоты - https://github.com/anmenig/anmenig.github.io/tree/master/dino3d/images
Если что ты имееш полный доступ. Если что я могу передать группу ВК.


Нужно бы сделать Контактная информация:

  • Пользов. соглашение
  • Политика конфиденц.

Для ВКонтакте, Фейзбука, Однокласников. Покаместь играть можно в ВКонтакте.

хауди, добавь меню

добавь в дино3д меню в котором можно выбирать скины, менять настройки, и ещё что то

Тени (Детали)

Привет, Хауди. Интересно получается, что при смене дня и ночи тени от кактусов, дино и тд стоят на одном месте. Можно сделать, чтобы они меняли свое положение в зависимости от времени.

Parcel or Webpack

Is your feature request related to a problem? Please describe.
yes, gulp is not so efficient and stable.

Describe the solution you'd like
use Parcel (Easy to use), or Webpack Webpack

Describe alternatives you've considered
Use another bundler for this project

Additional context
I can help with this.

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.