mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-07 12:10:17 +00:00
Compare commits
4 Commits
cabefb587e
...
e8bab21b58
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8bab21b58 | ||
|
|
f38024de67 | ||
|
|
bc0b2a86d0 | ||
|
|
0d4c9361c8 |
@ -1,2 +0,0 @@
|
||||
order: 0
|
||||
label: "GSoC"
|
||||
@ -10,6 +10,8 @@ label: "Project Ideas"
|
||||
+ Skill: Advanced C++ with metaprogramming; Python
|
||||
+ Project Length: Medium (175 hours)
|
||||
|
||||
> https://summerofcode.withgoogle.com/archive/2024/projects/Ji2Mi97o
|
||||
|
||||
pocketpy has provided a low-level API for creating bindings. It is fast, lightweight and easy to debug.
|
||||
However, it still requires a lot of boilerplate code to create bindings for complex C++ classes.
|
||||
The community has long expected a high-level API for creating bindings.
|
||||
@ -29,6 +31,8 @@ See https://github.com/pocketpy/pocketpy/issues/216 for more details.
|
||||
+ Skill: Intermediate C++; Python; Linear Algebra
|
||||
+ Project Length: Medium (175 hours)
|
||||
|
||||
> https://summerofcode.withgoogle.com/archive/2024/projects/sJLuASSP
|
||||
|
||||
Though pocketpy is designed for game scripting,
|
||||
some people are using it for scientific computing.
|
||||
It would be nice to have a `numpy` module in pocketpy.
|
||||
2
docs/gsoc2024/index.yml
Normal file
2
docs/gsoc2024/index.yml
Normal file
@ -0,0 +1,2 @@
|
||||
order: -1
|
||||
label: "GSoC 2024"
|
||||
58
docs/gsoc2025/guide.md
Normal file
58
docs/gsoc2025/guide.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
icon: rocket
|
||||
order: 10
|
||||
label: "Application Guide"
|
||||
---
|
||||
|
||||
Before starting, please read the [Ideas](./ideas.md) page and choose a project you are interested in.
|
||||
Set up a C11 compiler, clone pocketpy sources from github and try to build.
|
||||
This helps you confirm that your skills and experience match the requirements of the project.
|
||||
|
||||
### Build guide for beginners
|
||||
|
||||
First, you need to install these tools:
|
||||
|
||||
1. Python(>= 3.8), I am sure you already have it.
|
||||
2. A C11 compiler, such as GCC, Clang or MSVC. If you are on Linux, `gcc` is already installed. If you are on Windows, you can install Visual Studio with C/C++ development tools.
|
||||
3. CMake(>= 3.10), a cross-platform build tool. You can use `pip install cmake` to install it.
|
||||
|
||||
Then, clone pocketpy sources from github and try to build:
|
||||
```bash
|
||||
git clone https://github.com/pocketpy/pocketpy
|
||||
cd pocketpy
|
||||
|
||||
python cmake_build.py
|
||||
```
|
||||
|
||||
If everything goes well, you will get a `main` executable (`main.exe` on Windows) in the root directory of pocketpy.
|
||||
Simply run it and you will enter pocketpy's REPL.
|
||||
```txt
|
||||
pocketpy 2.0.5 (Jan 17 2025, 14:36:15) [64 bit] on darwin
|
||||
https://github.com/pocketpy/pocketpy
|
||||
Type "exit()" to exit.
|
||||
>>>
|
||||
>>> "Hello, world"
|
||||
'Hello, world'
|
||||
```
|
||||
|
||||
### Application guide
|
||||
|
||||
**Your need to send an email to `blueloveth@foxmail.com` with the following information:**
|
||||
|
||||
1. A brief introduction about yourself, including the most related open sourced project you have worked on before. It is highly recommended to attach your Github profile link.
|
||||
2. A technical proposal for the project you are interested in working on, including:
|
||||
+ Your understanding of the project.
|
||||
+ The technical approach/architecture you will adopt.
|
||||
+ The challenges you might face and how you will overcome them.
|
||||
3. A timeline for the project, including the milestones and deliverables.
|
||||
4. Other information required by the Google Summer of Code program.
|
||||
|
||||
### Coding style guide
|
||||
|
||||
See [Coding Style Guide](../coding_style_guide.md).
|
||||
|
||||
### Contact us
|
||||
|
||||
If you have any questions, you can join our [Discord](https://discord.gg/WWaq72GzXv)
|
||||
or contact me via email.
|
||||
We are glad to help you with your application.
|
||||
26
docs/gsoc2025/ideas.md
Normal file
26
docs/gsoc2025/ideas.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
icon: light-bulb
|
||||
order: 0
|
||||
label: "Project Ideas"
|
||||
---
|
||||
|
||||
### Porting LDTK importer for python games
|
||||
|
||||
+ Difficulty Level: 2/5 (Easy)
|
||||
+ Skill: Python; Haxe
|
||||
+ Project Length: Small
|
||||
|
||||
[LDTK](https://ldtk.io/) is a modern 2D level editor, created by the director of Dead Cells. It is free and open-source, used by many game developers.
|
||||
LDTK exports raw level data in JSON format, which can be further parsed by game frameworks. Currently, there is no convenient LDTK importer library in python (except the [QuickType](https://ldtk.io/api/#Python) loader, which has very limited functionality because it wraps the JSON schema only).
|
||||
|
||||
This project aims to develop a full-featured python library for importing LDTK levels, with advanced support of [Auto Tiles](https://ldtk.io/wp-content/uploads/2020/11/autoLayer-demo2.gif) for games with random map generation. The library should be written in pure python, compatible with pocketpy and cpython. If successful, it will be published on [PyPI](https://pypi.org/) and benefit all python game developers.
|
||||
|
||||
### VSCode plugin for debugging pocketpy applications
|
||||
|
||||
+ Difficulty Level: 3/5 (Medium)
|
||||
+ Skill: TypeScript; C
|
||||
+ Project Length: Small
|
||||
|
||||
Community users have reported that there is no convenient way to debug python applications interpreted by pocketpy. Fortunately, VSCode provides a mechanism of [Debugger Extension](https://code.visualstudio.com/api/extension-guides/debugger-extension) that allows us to integrate pocketpy debugger into VSCode UI through Debug Adapter Protocol (DAP).
|
||||
|
||||
This project aims to develop a VSCode plugin like [Python Debugger](https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy), which implements DAP for pocketpy. With this plugin, users can launch their pocketpy applications in VSCode with breakpoints, call stacks, and variable inspection. Students with experience in TypeScript will be helpful for this project.
|
||||
2
docs/gsoc2025/index.yml
Normal file
2
docs/gsoc2025/index.yml
Normal file
@ -0,0 +1,2 @@
|
||||
order: 0
|
||||
label: "GSoC 2025"
|
||||
Loading…
x
Reference in New Issue
Block a user