added basic README
This commit is contained in:
parent
b8697545b7
commit
d4e1d4fe93
|
@ -0,0 +1,113 @@
|
|||
# React Native Game Engine Expo TypeScript Template
|
||||
|
||||
This template is designed to jumpstart your game development with React Native using the react-native-game-engine library and TypeScript. It comes pre-configured with Expo Dev Client, allowing for a faster and more integrated development workflow.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Node.js
|
||||
- Expo CLI
|
||||
- eas-cli (for building and submitting your app using EAS Build and EAS Submit)
|
||||
|
||||
### Setup
|
||||
|
||||
Clone the repository to get started:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/nightness/react-native-game-engine-expo-typescript-template
|
||||
cd react-native-game-engine-expo-typescript-template
|
||||
```
|
||||
|
||||
Install the dependencies:
|
||||
|
||||
```sh
|
||||
npm install
|
||||
```
|
||||
|
||||
### Development Workflow
|
||||
|
||||
Start the project using the Expo dev client:
|
||||
|
||||
```sh
|
||||
npm run start
|
||||
```
|
||||
|
||||
To run the game on a specific platform, use the corresponding script:
|
||||
|
||||
```sh
|
||||
npm run android # for Android
|
||||
npm run ios # for iOS
|
||||
npm run web # for Web
|
||||
```
|
||||
|
||||
### Building and Submitting
|
||||
|
||||
The `eas.json` file is configured with profiles for local, development, preview, and production builds:
|
||||
|
||||
- `build:adhoc`: Build a local adhoc app binary locally.
|
||||
- `build:dev`: Build a development client app binary locally.
|
||||
- `build:preview`: Increment the app version, build and upload the app to Expo's preview channel.
|
||||
- `build:production`: Increment the app version, build and upload the app to Expo's production channel.
|
||||
- `eas:preview`: Build and submit the app to the preview channel automatically.
|
||||
- `eas:production`: Build and submit the app to the production channel automatically.
|
||||
- `submit:preview`: Submit the app to the preview channel.
|
||||
- `submit:production`: Submit the app to the production channel.
|
||||
- `update`: Update your app on the fly without needing to resubmit to app stores.
|
||||
|
||||
```sh
|
||||
npm run build:adhoc # Build for physical device testing
|
||||
npm run build:dev # Build for Expo development client
|
||||
npm run build:preview # Build for preview
|
||||
npm run eas:preview # Build and submit for preview
|
||||
npm run eas:production # Build and submit for production
|
||||
```
|
||||
|
||||
### Continuous Updates
|
||||
|
||||
With EAS Update, you can keep your app up to date without waiting for app store reviews:
|
||||
|
||||
```sh
|
||||
npm run update:preview # Update the preview channel
|
||||
npm run update:production # Update the production channel
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
- `assets`: Contains static assets such as images and sounds.
|
||||
- `game`: Core game logic.
|
||||
- `entities`: Game entity components (e.g., `Balloon.tsx`).
|
||||
- `systems`: Game system logic (e.g., `GameLoop.ts`).
|
||||
- `types.ts`: TypeScript type definitions and interfaces.
|
||||
|
||||
## Modifying the Template
|
||||
|
||||
To modify the template and create your own game, follow these steps:
|
||||
|
||||
1. **Design Your Game**: Plan out your game's mechanics, rules, and entities.
|
||||
|
||||
2. **Create Game Entities**: Modify or create new TypeScript React components in the `game/entities` directory to represent your game's entities.
|
||||
|
||||
3. **Implement Game Logic**: Write the game logic inside the `game/systems` directory. The `GameLoop.ts` file is where you will define how your game state updates with time.
|
||||
|
||||
4. **Update Assets**: Add or replace assets in the `assets` folder as needed for your game.
|
||||
|
||||
5. **Define Types**: If you create new entities or systems, update the `types.ts` file to define the TypeScript types that correspond to your game's components.
|
||||
|
||||
6. **Integrate Entities and Systems**: Use the `GameEngine.tsx` component to integrate your entities and systems into the game loop.
|
||||
|
||||
7. **Launch the Game**: Use the Expo CLI to run and test your game.
|
||||
|
||||
8. **Build and Publish**: Once your game is complete and tested, follow the Expo documentation to build and publish your game to the iOS App Store and Google Play Store.
|
||||
|
||||
## Support
|
||||
|
||||
File issues on the repository issue tracker.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome. Please fork the repository and submit a pull request.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the Apache-2.0 License.
|
Loading…
Reference in New Issue