Portfolio
Denis Zdorovtsov
mrtrizer@gmail.com
https://github.com/mrtrizer
Own game development SiegeUP!
Unity3d + C#
Developed from march of 2018 in free time after work.
Mobile classical RTS game in medieval cartoonish settings.
Android: https://play.google.com/store/apps/details?id=com.abuksigun.rpg_prototype
Android: https://play.google.com/store/apps/details?id=com.abuksigun.rpg_prototype
iOS TestFlight: https://testflight.apple.com/join/Zf8cyD7p
Gameplay trailer
Custom level editor
Custom level editor with custom serialization and level loading system that allowed to speed up loading and optimize memory consumption.
Wargaming World of Tanks Blitz 1.5 years since 2018
Game Engine Core team. Support of the proprietary game engine DAVA for multiple platforms: Win, Win10, MacOS, iOS, Android
Build system support for CMake, Gradle, MSBuild, Xcode,
Visual Studio, Android Studio, XCode
The most notable work integration of Wwise into the engine for all supported platforms and migration from FMOD to Wwise.
Zeptolab 2.5 years since 2016
I can't reveal much details about probjects in secret lounches. But I had a great experience working in Zeptolab for more then 2 years.
Technologies:
- C++14
- Unity3d/C#
- EntityX, ECS
- OpenGL ES2, Android/iOS game development
- protobuf 3
- Git, SVN
- Teamcity
- Code review
- Continuous integration
- Gameplay programming
- Agile, scrum, poker planning
Casual match-3 game in soft launch C++
Worked within Agile team of about 10 people with pocker planing and 2 week sprints. This was the best workflow I've ever seen, thanks to our project manager.We used own corporative 2d game engine.
Closed because of low income and expensive advertisment.
Dophin MVP.
Svn
Mad-max style game about top-down car fights in soft lauch Unity3d
Also Agile team. The game was built with Unity3d. This was the first time Zeptolab used Unity3d, so, workflow was built from scratch.The project was closed because of low retention.
Worked within a distributed team. Game designer and project managers worked in office in Barselona. All comunications and documentation in English.
Github
Top-down shooter with asynchronous multiplayer in soft launch (in progress) C++
The project is still in work. The game is developed with new generation of a corporative game engine which provides component based approach.Practice of code reviews.
Gitlab.
First full-time work in ENSET 2013 - 2016
Skills:
- C++98
- Qt5
- Modbus, SPI, I2C, UART, USB
- Coding STM32F1/4
- Driver development for Windows
- Linux
- Cross-platform programming
- Technical support
- Technical documentation
Welding machine
This was the first my project for the company. For testing of GUI, I made a simulator with a virtual display and a virtual driver of display. So, I become mobile and could work even from home. This approach also appeared useful for making user manual. All screenshots were made in simulator. All the next projects extended the simulator and by the end of work with my colleague we even developed a mathematical model for most important mechanical parts.
The main purpose of the machine is making smooth welding seams on rotors. Whole the control system was developed and coded by myself. All electronic parts were made by my good friend. And mechanical parts where designed and produced by another department.
Balancing machine
This was the most complex project from my point of view. Apart of controlling different devices and sensors, I needed to pass data to the computer in high speed in realtime. I decided to try with USB, because it also allowed to update firmware without extra work. Passing data in realtime required making a driver for Windows and developing debug tools for it. The GUI shown on video was developed by another colleague and all electronics and mechanics were made by other people.
Pressing machine
The project was similar to a welding machine in many aspects, even was simpler. Thus, I just moved a GUI framework to a separate module and used it in the both projects. The control system of a machine made operations with pressure, determined by operator via control board.
Balancing + welding machine
To make products more affordable and improve workflow, it where decided to compose both welding machine and balancing machine into the single device. This way, all components of a machine where connected together via Modbus. The code where kept universal and modular. This was a pretty interesting task for me. The perfect final.
Robotics club of DSTU university 2011 - 2013
Skills:
- C
- C++
- Qt4
- Assembler AVR
- AVR controllers ATtiny13A, ATmega8/16
- ARM controllers STM32F1/4
- Lidar URG-04LX
- SPI, I2C, UART
- Robot and electronics simulation
- Team work, leading and mentoring skills
- Participation in international events
- Basic electronics development skills
The first thing I've done after university entrance was joining the robotic club which was just founded. So, I've became the forth it's core member.
The club still exists and evolving: https://vk.com/southrobocrew
The club still exists and evolving: https://vk.com/southrobocrew
Local contests
I participated in few local contests and was a leader of a team of 5 students with an autonomous robot for retrieving a box from a maze.ABU Robocon 2012
This is a big robotic competition of the Asian region. We did our best in Hong-Kong contest but as novices were not able to compete with experienced teams.The video from one of testings (I'm that skinny guy who is jumping funny) :
I developed firmware for both working robots presented in video (manual and the transport robot). Both were done in pure C on STM32F1 and STM32F4 controllers. The third robot was developed by my good friend.
It was interesting to work with omni wheels configurations which are able to move in any direction. But the most exciting part was driving them!
3. ABU Robocon 2013 LIDAR
This time I worked on a navigation system, based on data received from LIDAR (laser distance detector). Data received from LIDAR were processed by Hough algorithm for retrieving circles and lines. And after that position received from other sensors were clarified with gradient descent relaying on previously saved map of a playground. Unfortunately, data from real LIDAR incorporated too much noises and Hough algorithm worked awful with data from real world. So, the work were finally canceled.
Most of testing were done in open source robotic simulation system Player/Stage. There also where written few data visualisation tools during the exploration work.
4. "Plumber" bot
Robot for tube condition analysis.
The team consisted of about 10 people. I was responsible for development of a control application. It was made with Qt in C++. The control app emits commands to the robot and takes input from joystick, keyboard and GUI. The challenging part was to translate a video from analog camera connected via tv-tuner in Qt application. Unfortunately the project was closed because the customer ran out of money.
The team consisted of about 10 people. I was responsible for development of a control application. It was made with Qt in C++. The control app emits commands to the robot and takes input from joystick, keyboard and GUI. The challenging part was to translate a video from analog camera connected via tv-tuner in Qt application. Unfortunately the project was closed because the customer ran out of money.
My literature
- Just for fun, Linus Torvalds
- The C Programming Language - Dennis Ritchie
- Modern Operating Systems, Andrew S. Tanenbaum
- C/C++ High Level Programming, T. Pavlovskaya
- Head First Design Patterns, Elisabeth Freeman, Kathy Sierra
- The Shellcoder's Handbook
- Design Patterns (GoF)
- Effective C++, Scott Meyers
- Effective Modern C++, Scott Meyers
- Code Complete, Steve McConnell
- C++ Coding Standards, Herb SutterGame Engine Architecture, Jason Gregory
- Domain-Driven Design, Eric J. Evans
- The Art of Readable Code
- Patterns of Enterprise Application Architecture, Fowler (and articles on his site)
Комментарии
Отправить комментарий