🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Let's make an open source game engine for audio and video games!

Started by
1 comment, last by Dawoodoz 4 years, 2 months ago

Hello.

My name is Constantine.

I published here a topic about the engine for audio games for blind developers.

Today, I ask for your help!

I ask for help from those who are a good developer. I ask for help from those who care.

Also, advise me where I can post this other than Reddit or gamedev.net.

And please share this post. Among your colleagues, acquaintances and friends of the developers!

I'll publish here previously published information. For this reason, if you have already read this, you can scroll down a bit.

I'm blind. Completely blind.

Among blind programmers, there are those who develop audio games.

What does it look like?

Imagine GTA, Mafia, Call Of Duty, any shooter. Only without graphics, and without sight height. And you are guided by 3D sound, shoot at the sound, etc.

Recently, a lot of those who write in Python. But personally, I'd not trust Python with a good online project...

To work with a computer, we use screen access programs. Programs that voice everything on the computer screen.

You can read more about it here:

https://www.vincit.com/blog/software-development-450-words-per-minute

https://medium.com/free-code-camp/looking-back-to-what-started-it-all-731ef5424aec

Why can't we use video game engines?

Because not all of them are access to us. The most popular, Unity and Unreal Engine, are not available for our programs.

It's clear that everyone who starts development from scratch implements every detail. Game window, processing keystrokes, sound output.

One of the developers of sound games, Philip Bennefall, said in one of his interviews (recorded from memory):

Every time, I have to do something at a low level. Work with memory, pointers. I cannot concentrate on the logic of the game. Therefore, I decided to create a game engine. An engine that allows you not to think about things at a low level, but allows you to focus on game logic.

And he really created! The engine was called Blastbay Game Toolkit (BGT).

The engine is very simple. For example, in order to reproduce sound, it was necessary to create an object of the Sound_pool class, set the file name in the constructor, and then simply execute the Play_3D method and transfer the coordinates of the listener and source.

3 cons of engine:

1. Not cross-platform;

2. Discontinued support;

3. Very big lags when transferring packets in online games.

There have been and are other attempts to create such an engine.

The most successful, have now created an API in Python - Lucia. You can see it here:

https://github.com/luciasoftware/lucia

Cons:

1. Not cross-platform (Windows and macOS only);

2. Works on Python.

By implementation, I'd like to make a similar engine.

In fact, I have a grand and very ambitious idea. Why?

Because I don't want to create an audio game engine. I don’t even want to create a cross-platform audio game engine. I want to create a cross-platform game engine that can be used for both audio games and video games!

Agree. it's important for the sighted developer to see the result of his work. In addition, the blind and the sighted will be able to work on games together, it's wonderful!

The main features of the engine:

1) Creating a game window through a method that gets the window title and window size in argument;

2) Work with the keyboard, mouse and other control devices;

3) Work with 1D, 2D and 3D sound, without complex manipulations, only indicating the coordinates of the listener and source;

4) Work with the network;

5) Graphics, where do without it;

6) Cross-platform!

What should we get as a result?

The dynamic library that can be connected to any compiled language, the wrapper of which will be in .NET, Java and Python, with which you can develop cross-platform games!

Please note that I'm not interested in the game engine anymore, but the API. That is, only the developer who develops the game directly develops game logic. The task of the library is to give the developer the ability to program graphics, audio, and network cross-platform and without a low level.

I think the surest way to create an Open source project. So that everyone can participate in this.

What am I asking you about?

The fact is that I'm not a professional developer. I know Python more than other programming languages, but I'm ready to learn C++ for this project. I know how it should look.

I'm looking for caring developers who can help get started.

I have never done open source projects, so I ask for help!

The project with C++, I think you will agree that this is reasonable.

It’s not necessary to do everything from scratch. There are different libraries, ready-made codes for graphics and more. The main thing is to do it for different platforms, including Android and IOS.

I'll be waiting for your answers.

Hopefully,

Constantine Ryzhikov!

Advertisement

If you want to get familiar with C plus plus, you can start with a text based adventure game for screen readers. Once you have the game logic, you can then play pre-recorded sounds. Then just keep iterating your ideas for each game while learning more about the sound engine.

I'm not sure if your screen reader works with Linux in command line interface mode, but from there it should be easy to start programming in C plus plus without being limited by the visual interface. You can reboot the computer using “sudo reboot” followed by your password, open and edit text files using Nano, compile and run your code using Clang or GCC, et cetera. All the programs there are made for text only interaction. If pure CLI is not supported then you can learn the distribution's key stroke shortcut for starting a terminal emulator and still have access to web and e-mail on the side. I often use my Linux computers without having a display connected while typing the commands on a wireless keyboard and hearing beep sounds from the electronics I connected to GPIO ports, just for the convenience.

As a former Android firmware developer, I would not recommend C plus plus for mobile devices because Google are on the warpath against native binaries and each platform will dictate which compiler to use and may suddenly drop support for a low-level API before the game is even ready. You would also have to compile separatelly for different versions of the ARM architecture and I don't think that performance is that critical for a game with only audio. I agree however that Python is not reliable due to breaking backward compatibility in minor revisions. Java has just in time compilation that works fast enough for beginners on phones. Kotlin is a newer alternative to Java which allow compiling both natively and to bytecode and it has Google's endorsement for long time support, but I haven't tried it myself.

In order to develop for Android, you must enable developer options by repeatedly pressing the version number in the phone's settings. Then activate USB debugging from developer settings, install Android Studio with Android Debug Bridge on the computer, connect to the computer by USB to the phone and accept the computer for debug access on the phone. Typing “adb shell” in a terminal should give you Linux terminal access to the phone's system. Android Studio usually compiles and installs on the phone using the graphical interface, but you can call compilers from the terminal and run a script for uploading the compiled program to the phone. I have only done this for uploading experimental drivers, but you can probably generate an Android installation packet from Java or Kotlin and use Android debug bridge to run the installer. You should not need to unlock the bootloader nor root the phone, because the packet should contain an Android manifest with requested permissions.

This topic is closed to new replies.

Advertisement